v0.14.0
Loading...
Searching...
No Matches
Classes | Enumerations | Functions
FTensor Namespace Reference

Tensors class implemented by Walter Landry. More...

Classes

class  Christof
 
class  Christof< PackPtr< T *, I >, Tensor_Dim0, Tensor_Dim12 >
 
class  Christof< T *, Tensor_Dim0, Tensor_Dim12 >
 
class  Christof_constructor
 
class  Christof_constructor< T, 2, 2 >
 
class  Christof_constructor< T, 3, 3 >
 
class  Christof_constructor< T, 3, 4 >
 
class  Christof_constructor< T, 4, 4 >
 
class  Christof_Expr
 
class  Christof_number_0
 
class  Christof_numeral_0
 
class  Christof_numeral_1
 
class  conj_Tensor2
 
class  d_boundary_Tensor0
 
class  d_boundary_Tensor2_symmetric
 
class  d_one_sided_Tensor1
 
class  d_one_sided_Tensor2_symmetric
 
class  dd_boundary_Tensor0
 
class  dd_boundary_Tensor2_symmetric
 
class  Ddg
 
class  Ddg< PackPtr< T *, I >, Tensor_Dim01, Tensor_Dim23 >
 
class  Ddg< T *, Tensor_Dim01, Tensor_Dim23 >
 
class  Ddg_and_Ddg0213
 
class  Ddg_and_Ddg0321
 
class  Ddg_and_Tensor2_symmetric
 
class  Ddg_and_Tensor2_symmetric< A, B, T, U, Dim01, Dim23, Dim01, i, j, k, l, i, j >
 
class  Ddg_and_Tensor2_symmetric< A, B, T, U, Dim01, Dim23, Dim23, i, j, k, l, k, l >
 
class  Ddg_carat_Ddg_13
 
class  Ddg_carat_Tensor2_symmetric_13
 
class  Ddg_Expr
 
class  Ddg_Expr< Ddg< A, Tensor_Dim01, Tensor_Dim23 >, T, Dim01, Dim23, i, j, k, l >
 
class  Ddg_minus_Ddg
 
class  Ddg_mod_Ddg
 
class  Ddg_mod_Tensor2_symmetric
 
class  Ddg_mod_Tensor2_symmetric< A, B, T, U, Dim01, Dim23, Dim01, i, j, k, l, i, j >
 
class  Ddg_mod_Tensor2_symmetric< A, B, T, U, Dim01, Dim23, Dim23, i, j, k, l, k, l >
 
class  Ddg_number_0
 
class  Ddg_number_01
 
class  Ddg_number_rhs_0
 
class  Ddg_number_rhs_01
 
class  Ddg_numeral_0
 
class  Ddg_numeral_01
 
class  Ddg_numeral_02
 
class  Ddg_numeral_123
 
class  Ddg_numeral_23
 
class  Ddg_or_Ddg
 
class  Ddg_or_Tensor2_symmetric_13
 
class  Ddg_plus_Ddg
 
class  Ddg_plus_Ddg< A, B, T, U, Dim01, Dim23, Dim01, Dim23, i, j, k, l, i, j, k, l >
 
class  Ddg_plus_Ddg< A, B, T, U, Dim01, Dim23, Dim23, Dim01, i, j, k, l, k, l, i, j >
 
class  Ddg_times_Ddg_0101
 
class  Ddg_times_Ddg_0123
 
class  Ddg_times_Ddg_2301
 
class  Ddg_times_Ddg_2323
 
class  Ddg_times_Dg_01
 
class  Ddg_times_Dg_23
 
class  Ddg_times_Tensor1_0
 
class  Ddg_times_Tensor1_1
 
class  Ddg_times_Tensor1_2
 
class  Ddg_times_Tensor1_3
 
class  Ddg_times_Tensor2_01
 
class  Ddg_times_Tensor2_0_0
 
class  Ddg_times_Tensor2_0_1
 
class  Ddg_times_Tensor2_13
 
class  Ddg_times_Tensor2_1_0
 
class  Ddg_times_Tensor2_1_1
 
class  Ddg_times_Tensor2_23
 
class  Ddg_times_Tensor2_2_0
 
class  Ddg_times_Tensor2_2_1
 
class  Ddg_times_Tensor2_32
 
class  Ddg_times_Tensor2_3_0
 
class  Ddg_times_Tensor2_3_1
 
class  Ddg_times_Tensor2_symmetric_01
 
class  Ddg_times_Tensor2_symmetric_13
 
class  Ddg_times_Tensor2_symmetric_23
 
class  Ddg_times_Tensor4_2301_ijkl
 
class  Ddg_times_Tensor4_2323_klij
 
class  ddTensor0
 
class  ddTensor1
 
class  ddTensor2_symmetric
 
class  Dg
 
class  Dg< PackPtr< T *, I >, Tensor_Dim01, Tensor_Dim2 >
 
class  Dg< T *, Tensor_Dim01, Tensor_Dim2 >
 
class  Dg_and_Dg_02
 
class  Dg_and_Dg_12
 
class  Dg_and_Tensor1
 
class  Dg_and_Tensor2_symmetric
 
class  Dg_constructor
 
class  Dg_constructor< T, 2, 2 >
 
class  Dg_constructor< T, 3, 3 >
 
class  Dg_constructor< T, 4, 3 >
 
class  Dg_constructor< T, 4, 4 >
 
class  Dg_divide_generic
 
class  Dg_Expr
 
class  Dg_Expr< Christof< A, Tensor_Dim0, Tensor_Dim12 >, T, Dim12, Dim0, i, j, k >
 
class  Dg_Expr< const Christof< A, Tensor_Dim0, Tensor_Dim12 >, T, Dim12, Dim0, i, j, k >
 
class  Dg_Expr< Ddg_number_rhs_0< A, T, N0 >, T, Dim23, Dim1, i, j, k >
 
class  Dg_Expr< Dg< A, Tensor_Dim01, Tensor_Dim2 >, T, Dim01, Dim2, i, j, k >
 
class  Dg_minus_Dg
 
class  Dg_minus_Dg_02
 
class  Dg_number_0
 
class  Dg_number_01
 
class  Dg_number_12
 
class  Dg_number_2
 
class  Dg_number_rhs_0
 
class  Dg_number_rhs_01
 
class  Dg_number_rhs_12
 
class  Dg_number_rhs_2
 
class  Dg_numeral_0
 
class  Dg_numeral_01
 
class  Dg_numeral_12
 
class  Dg_numeral_2
 
class  Dg_or_Dg_02
 
class  Dg_or_Dg_12
 
class  Dg_plus_Dg
 
class  Dg_plus_Dg_10
 
class  Dg_plus_Dg_210
 
class  Dg_times_Dg_01_01
 
class  Dg_times_Dg_12_01
 
class  Dg_times_Dg_12_20
 
class  Dg_times_Dg_2
 
class  Dg_times_generic
 
class  Dg_times_Tensor1_0
 
class  Dg_times_Tensor1_1
 
class  Dg_times_Tensor1_2
 
class  Dg_times_Tensor2_0
 
class  Dg_times_Tensor2_01
 
class  Dg_times_Tensor2_02
 
class  Dg_times_Tensor2_1
 
class  Dg_times_Tensor2_10
 
class  Dg_times_Tensor2_12
 
class  Dg_times_Tensor2_1_0
 
class  Dg_times_Tensor2_1_1
 
class  Dg_times_Tensor2_20
 
class  Dg_times_Tensor2_21
 
class  Dg_times_Tensor2_symmetric_0
 
class  Dg_times_Tensor2_symmetric_01
 
class  Dg_times_Tensor2_symmetric_02
 
class  Dg_times_Tensor2_symmetric_1
 
class  Dg_times_Tensor2_symmetric_10
 
class  Dg_times_Tensor2_symmetric_12
 
class  Dg_times_Tensor2_symmetric_1_0
 
class  Dg_times_Tensor2_symmetric_1_1
 
class  Dg_times_Tensor2_symmetric_20
 
class  Dg_times_Tensor2_symmetric_21
 
class  diffusion_Tensor1
 
class  diffusion_Tensor2_symmetric
 
class  dTensor0
 
class  dTensor1
 
class  dTensor2_symmetric
 
class  generic_minus_Tensor1
 
class  generic_minus_Tensor2_symmetric
 
class  Index
 
class  interpolate_Tensor1
 
class  interpolate_Tensor2_symmetric
 
class  Kronecker_Delta
 Kronecker Delta class. More...
 
class  Kronecker_Delta_symmetric
 Kronecker Delta class symmetric. More...
 
class  Levi_Civita
 Levi_Civita Classes. More...
 
class  minus_Ddg
 
class  minus_Dg
 
class  minus_Tensor1
 
class  minus_Tensor2
 
class  minus_Tensor2_symmetric
 
class  minus_Tensor3
 
class  Number
 
class  PackPtr
 
struct  Permutation2
 
struct  Permutation3
 
struct  Permutation4
 
class  promote
 
class  Riemann
 
class  Riemann< T, 3 >
 
class  Riemann_Expr
 
class  Riemann_Expr< Riemann< A, Dim >, T, Dim, i, j, k, l >
 
class  Riemann_minus_Riemann
 
class  Riemann_plus_Riemann
 
class  Riemann_times_Tensor1_0
 
class  Riemann_times_Tensor1_1
 
class  Riemann_times_Tensor1_2
 
class  Riemann_times_Tensor1_3
 
class  Riemann_times_Tensor2_symmetric_0
 
struct  Sign_of_T3dg_plus_equals_T3dg
 
struct  Sign_of_T3dg_plus_equals_T3dg< false >
 
struct  Sign_of_T3dg_plus_equals_T3dg< true >
 
struct  Sign_of_T4ddg_plus_equals_T4ddg
 
struct  Sign_of_T4ddg_plus_equals_T4ddg< false >
 
struct  Sign_of_T4ddg_plus_equals_T4ddg< true >
 
struct  T3ch_equals_T3dg_Op
 
struct  T3ch_equals_T3dg_Op< 0 >
 
struct  T3ch_equals_T3dg_Op< 1 >
 
struct  T3ch_equals_T3dg_Op< 2 >
 
class  T4Ddg_equals_generic
 
class  T4Ddg_times_equals_generic
 
class  Tensor0
 
class  Tensor0< PackPtr< T *, I > >
 
class  Tensor0< T * >
 
class  Tensor1
 
class  Tensor1< PackPtr< T *, I >, Tensor_Dim >
 
class  Tensor1< T *, Tensor_Dim >
 
class  Tensor1_and_Tensor1
 
class  Tensor1_carat_Tensor1
 
class  Tensor1_constructor
 
class  Tensor1_constructor< T, 1 >
 
class  Tensor1_constructor< T, 2 >
 
class  Tensor1_constructor< T, 3 >
 
class  Tensor1_constructor< T, 4 >
 
class  Tensor1_constructor< T, 6 >
 
class  Tensor1_constructor< T, 8 >
 
class  Tensor1_constructor< T, 9 >
 
class  Tensor1_divide_generic
 
class  Tensor1_Expr
 
class  Tensor1_Expr< Dg_number_rhs_01< A, T, N1, N2 >, T, Dim, i >
 
class  Tensor1_Expr< Dg_number_rhs_12< A, T, N1, N2 >, T, Dim, i >
 
class  Tensor1_Expr< Tensor1< A, Tensor_Dim >, T, Dim, i >
 
class  Tensor1_Expr< Tensor2_number_rhs_0< A, T, N >, T, Dim1, i >
 
class  Tensor1_Expr< Tensor2_number_rhs_1< A, T, N >, T, Dim1, i >
 
class  Tensor1_minus_generic
 
class  Tensor1_minus_Tensor1
 
class  Tensor1_or_Tensor1
 
class  Tensor1_plus_generic
 
class  Tensor1_plus_Tensor1
 
class  Tensor1_times_generic
 
class  Tensor1_times_Tensor1
 
class  Tensor2
 
class  Tensor2< PackPtr< T *, I >, Tensor_Dim0, Tensor_Dim1 >
 
class  Tensor2< T *, Tensor_Dim0, Tensor_Dim1 >
 
class  Tensor2_and_Tensor1
 
class  Tensor2_and_Tensor1< A, B, T, U, Dim0, Dim1, Dim0, i, j, i >
 
class  Tensor2_and_Tensor1< A, B, T, U, Dim0, Dim1, Dim1, i, j, j >
 
class  Tensor2_antisymmetric
 
class  Tensor2_antisymmetric_constructor
 
class  Tensor2_antisymmetric_constructor< T, 2 >
 
class  Tensor2_antisymmetric_constructor< T, 3 >
 
class  Tensor2_antisymmetric_constructor< T, 4 >
 
class  Tensor2_antisymmetric_Expr
 
class  Tensor2_antisymmetric_Expr< Tensor2_antisymmetric< A, Tensor_Dim >, T, Dim, i, j >
 
class  Tensor2_carat_Tensor2
 
class  Tensor2_carat_Tensor2< A, B, T, U, Dim, Dim1, Dim, Dim1, i, j, k, j >
 
class  Tensor2_carat_Tensor2< A, B, T, U, Dim, Dim1, Dim1, Dim, i, j, j, k >
 
class  Tensor2_carat_Tensor2< A, B, T, U, Dim1, Dim, Dim, Dim1, j, i, k, j >
 
class  Tensor2_carat_Tensor2< A, B, T, U, Dim1, Dim, Dim1, Dim, j, i, j, k >
 
class  Tensor2_constructor
 
class  Tensor2_constructor< T, 1, 2, column_major >
 
class  Tensor2_constructor< T, 1, 2, row_major >
 
class  Tensor2_constructor< T, 2, 1, column_major >
 
class  Tensor2_constructor< T, 2, 1, row_major >
 
class  Tensor2_constructor< T, 2, 2, column_major >
 
class  Tensor2_constructor< T, 2, 2, row_major >
 
class  Tensor2_constructor< T, 3, 2, column_major >
 
class  Tensor2_constructor< T, 3, 2, row_major >
 
class  Tensor2_constructor< T, 3, 3, column_major >
 
class  Tensor2_constructor< T, 3, 3, row_major >
 
class  Tensor2_constructor< T, 4, 4, column_major >
 
class  Tensor2_constructor< T, 4, 4, row_major >
 
class  Tensor2_divide_generic
 
class  Tensor2_Expr
 
class  Tensor2_Expr< Dg_number_rhs_0< A, T, N >, T, Dim0, Dim1, i, j >
 
class  Tensor2_Expr< Tensor2< A, Tensor_Dim0, Tensor_Dim1 >, T, Dim0, Dim1, i, j >
 
class  Tensor2_minus_Tensor2
 
class  Tensor2_minus_Tensor2< A, B, T, U, Dim0, Dim1, Dim0, Dim1, i, j, i, j >
 
class  Tensor2_minus_Tensor2< A, B, T, U, Dim0, Dim1, Dim1, Dim0, i, j, j, i >
 
class  Tensor2_minus_Tensor2_symmetric
 
class  Tensor2_minus_Tensor2_symmetric< A, B, T, U, Dim, Dim, Dim, i, j, i, j >
 
class  Tensor2_minus_Tensor2_symmetric< A, B, T, U, Dim, Dim, Dim, i, j, j, i >
 
class  Tensor2_number_0
 
class  Tensor2_number_1
 
class  Tensor2_number_rhs_0
 
class  Tensor2_number_rhs_1
 
class  Tensor2_numeral_0
 
class  Tensor2_numeral_1
 
class  Tensor2_or_Tensor2
 
class  Tensor2_or_Tensor2< A, B, T, U, Dim, Dim, Dim, Dim, i, j, i, j >
 
class  Tensor2_or_Tensor2< A, B, T, U, Dim, Dim, Dim, Dim, i, j, j, i >
 
class  Tensor2_plus_Tensor2
 
class  Tensor2_plus_Tensor2< A, B, T, U, Dim0, Dim1, Dim0, Dim1, i, j, i, j >
 
class  Tensor2_plus_Tensor2< A, B, T, U, Dim0, Dim1, Dim1, Dim0, i, j, j, i >
 
class  Tensor2_symmetric
 
class  Tensor2_symmetric< PackPtr< T *, I >, Tensor_Dim >
 
class  Tensor2_symmetric< T *, Tensor_Dim >
 
class  Tensor2_symmetric_and_Tensor2_symmetric
 
class  Tensor2_symmetric_and_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, i, j >
 
class  Tensor2_symmetric_and_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, j, i >
 
class  Tensor2_symmetric_carat_Tensor2
 
class  Tensor2_symmetric_carat_Tensor2< A, B, T, U, Dim, Dim, Dim, i, j, j, k >
 
class  Tensor2_symmetric_carat_Tensor2< A, B, T, U, Dim, Dim, Dim, i, j, k, j >
 
class  Tensor2_symmetric_carat_Tensor2< A, B, T, U, Dim, Dim, Dim, j, i, j, k >
 
class  Tensor2_symmetric_carat_Tensor2< A, B, T, U, Dim, Dim, Dim, j, i, k, j >
 
class  Tensor2_symmetric_carat_Tensor2_symmetric
 
class  Tensor2_symmetric_constructor
 
class  Tensor2_symmetric_constructor< T, 1 >
 
class  Tensor2_symmetric_constructor< T, 2 >
 
class  Tensor2_symmetric_constructor< T, 3 >
 
class  Tensor2_symmetric_constructor< T, 4 >
 
class  Tensor2_symmetric_divide_generic
 
class  Tensor2_symmetric_Expr
 
class  Tensor2_symmetric_Expr< Ddg_number_rhs_01< A, T, N0, N1 >, T, Dim, i, j >
 
class  Tensor2_symmetric_Expr< Dg_number_rhs_2< A, T, N >, T, Dim, i, j >
 
class  Tensor2_symmetric_Expr< Tensor2_symmetric< A, Tensor_Dim >, T, Dim, i, j >
 
class  Tensor2_symmetric_minus_generic
 
class  Tensor2_symmetric_minus_Tensor2
 
class  Tensor2_symmetric_minus_Tensor2< A, B, T, U, Dim, Dim, Dim, i, j, i, j >
 
class  Tensor2_symmetric_minus_Tensor2< A, B, T, U, Dim, Dim, Dim, i, j, j, i >
 
class  Tensor2_symmetric_minus_Tensor2_symmetric
 
class  Tensor2_symmetric_minus_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, i, j >
 
class  Tensor2_symmetric_minus_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, j, i >
 
class  Tensor2_symmetric_mod_Tensor2_symmetric
 
class  Tensor2_symmetric_mod_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, i, j >
 
class  Tensor2_symmetric_mod_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, j, i >
 
class  Tensor2_symmetric_plus_Tensor2
 
class  Tensor2_symmetric_plus_Tensor2< A, B, T, U, Dim, Dim, Dim, i, j, i, j >
 
class  Tensor2_symmetric_plus_Tensor2< A, B, T, U, Dim, Dim, Dim, i, j, j, i >
 
class  Tensor2_symmetric_plus_Tensor2_symmetric
 
class  Tensor2_symmetric_plus_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, i, j >
 
class  Tensor2_symmetric_plus_Tensor2_symmetric< A, B, T, U, Dim, Dim, i, j, j, i >
 
class  Tensor2_symmetric_times_Tensor1
 
class  Tensor2_symmetric_times_Tensor1_0
 
class  Tensor2_symmetric_times_Tensor1_1
 
class  Tensor2_symmetric_times_Tensor2_00
 
class  Tensor2_symmetric_times_Tensor2_01
 
class  Tensor2_symmetric_times_Tensor2_10
 
class  Tensor2_symmetric_times_Tensor2_11
 
class  Tensor2_symmetric_times_Tensor2_symmetric
 
class  Tensor2_symmetric_times_Tensor2_symmetric_00
 
class  Tensor2_symmetric_times_Tensor2_symmetric_01
 
class  Tensor2_symmetric_times_Tensor2_symmetric_10
 
class  Tensor2_symmetric_times_Tensor2_symmetric_11
 
class  Tensor2_times_generic
 
class  Tensor2_times_Tensor1
 
class  Tensor2_times_Tensor1_single
 
class  Tensor2_times_Tensor2
 
class  Tensor2_times_Tensor2_00
 
class  Tensor2_times_Tensor2_01
 
class  Tensor2_times_Tensor2_10
 
class  Tensor2_times_Tensor2_11
 
class  Tensor3
 
class  Tensor3< PackPtr< T *, I >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 >
 
class  Tensor3< T *, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 >
 
class  Tensor3_antisymmetric
 
class  Tensor3_antisymmetric< T *, Tensor_Dim0, Tensor_Dim12 >
 
class  Tensor3_antisymmetric_constructor
 
class  Tensor3_antisymmetric_constructor< T, 2, 2 >
 
class  Tensor3_antisymmetric_constructor< T, 3, 3 >
 
class  Tensor3_antisymmetric_constructor< T, 4, 4 >
 
class  Tensor3_antisymmetric_Expr
 
class  Tensor3_antisymmetric_Expr< Tensor3_antisymmetric< A, Dim0, Dim12 >, T, Dim0, Dim12, i, j, k >
 
class  Tensor3_antisymmetric_mod_Tensor1
 
class  Tensor3_antisymmetric_or_Tensor3_antisymmetric
 
class  Tensor3_antisymmetric_plus_Tensor3_antisymmetric
 
class  Tensor3_antisymmetric_plus_Tensor3_antisymmetric_12
 
class  Tensor3_antisymmetric_times_generic
 
class  Tensor3_constructor
 
class  Tensor3_constructor< T, 2, 2, 2 >
 
class  Tensor3_constructor< T, 3, 3, 3 >
 
class  Tensor3_constructor< T, 4, 4, 4 >
 
class  Tensor3_contracted_01
 
class  Tensor3_contracted_02
 
class  Tensor3_contracted_12
 
class  Tensor3_Expr
 
class  Tensor3_Expr< Tensor3< A, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 >, T, Dim0, Dim1, Dim2, i, j, k >
 
class  Tensor3_Expr< Tensor4_number_rhs_2< A, T, N >, T, Dim0, Dim1, Dim2, i, j, k >
 
class  Tensor3_Expr< Tensor4_number_rhs_3< A, T, N >, T, Dim0, Dim1, Dim2, i, j, k >
 
class  Tensor3_minus_Tensor3
 
class  Tensor3_minus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim0, Dim1, Dim2, i, j, k, i, j, k >
 
class  Tensor3_minus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim0, Dim2, Dim1, i, j, k, i, k, j >
 
class  Tensor3_minus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim1, Dim0, Dim2, i, j, k, j, i, k >
 
class  Tensor3_minus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim1, Dim2, Dim0, i, j, k, j, k, i >
 
class  Tensor3_minus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim2, Dim0, Dim1, i, j, k, k, i, j >
 
class  Tensor3_minus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim2, Dim1, Dim0, i, j, k, k, j, i >
 
class  Tensor3_number_0
 
class  Tensor3_number_01
 
class  Tensor3_number_02
 
class  Tensor3_number_1
 
class  Tensor3_number_12
 
class  Tensor3_number_2
 
class  Tensor3_number_rhs_0
 
class  Tensor3_number_rhs_01
 
class  Tensor3_number_rhs_02
 
class  Tensor3_number_rhs_1
 
class  Tensor3_number_rhs_12
 
class  Tensor3_number_rhs_2
 
class  Tensor3_numeral_0
 
class  Tensor3_numeral_01
 
class  Tensor3_numeral_12
 
class  Tensor3_numeral_2
 
class  Tensor3_or_Tensor3
 
class  Tensor3_or_Tensor3< A, B, T, U, Dim0, Dim12, Dim12, Dim0, Dim12, Dim12, i, j, k, i, k, j >
 
class  Tensor3_or_Tensor3< A, B, T, U, Dim02, Dim1, Dim02, Dim02, Dim1, Dim02, i, j, k, j, i, k >
 
class  Tensor3_or_Tensor3< A, B, T, U, Dim02, Dim1, Dim02, Dim02, Dim1, Dim02, i, j, k, k, j, i >
 
class  Tensor3_plus_Tensor3
 
class  Tensor3_plus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim0, Dim1, Dim2, i, j, k, i, j, k >
 
class  Tensor3_plus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim0, Dim2, Dim1, i, j, k, i, k, j >
 
class  Tensor3_plus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim1, Dim0, Dim2, i, j, k, j, i, k >
 
class  Tensor3_plus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim1, Dim2, Dim0, i, j, k, j, k, i >
 
class  Tensor3_plus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim2, Dim0, Dim1, i, j, k, k, i, j >
 
class  Tensor3_plus_Tensor3< A, B, T, U, Dim0, Dim1, Dim2, Dim2, Dim1, Dim0, i, j, k, k, j, i >
 
class  Tensor3_times_Dg
 
class  Tensor3_times_Dg_02_20
 
class  Tensor3_times_Dg_12_12
 
class  Tensor3_times_Tensor1_0
 
class  Tensor3_times_Tensor1_1
 
class  Tensor3_times_Tensor1_2
 
class  Tensor3_times_Tensor2_0_01
 
class  Tensor3_times_Tensor2_0_10
 
class  Tensor3_times_Tensor2_1_01
 
class  Tensor3_times_Tensor2_1_10
 
class  Tensor3_times_Tensor2_2_01
 
class  Tensor3_times_Tensor2_2_10
 
class  Tensor3_times_Tensor2_double
 
class  Tensor3_times_Tensor2_symmetric_0
 
class  Tensor3_times_Tensor2_symmetric_01
 
class  Tensor3_times_Tensor2_symmetric_02
 
class  Tensor3_times_Tensor2_symmetric_1
 
class  Tensor3_times_Tensor2_symmetric_12
 
class  Tensor3_times_Tensor3_12_12
 
class  Tensor3_times_Tensor3_12_21
 
class  Tensor3_times_Tensor3_21
 
class  Tensor3_times_Tensor3_23_23
 
class  Tensor3_times_Tensor3_23_32
 
class  Tensor4
 
class  Tensor4< PackPtr< T *, I >, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 >
 
class  Tensor4< T *, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 >
 
class  Tensor4_constructor
 
class  Tensor4_constructor< T, 2, 2, 2, 2 >
 
class  Tensor4_constructor< T, 3, 3, 3, 3 >
 
class  Tensor4_contracted_01
 
class  Tensor4_contracted_02
 
class  Tensor4_contracted_03
 
class  Tensor4_contracted_12
 
class  Tensor4_contracted_13
 
class  Tensor4_contracted_23
 
class  Tensor4_Expr
 
class  Tensor4_Expr< Tensor4< A, Dim0, Dim1, Dim2, Dim3 >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l >
 
class  Tensor4_minus_Tensor4
 
class  Tensor4_number_2
 
class  Tensor4_number_3
 
class  Tensor4_number_rhs_2
 
class  Tensor4_number_rhs_3
 
class  Tensor4_numeral_2
 
class  Tensor4_numeral_3
 
class  Tensor4_or_Tensor4
 
class  Tensor4_or_Tensor4< A, B, T, U, Dim01, Dim01, Dim23, Dim23, Dim01, Dim01, Dim23, Dim23, i, j, k, l, j, i, l, k >
 
class  Tensor4_plus_Tensor4
 
class  Tensor4_times_Dg_01
 
class  Tensor4_times_Dg_23
 
class  Tensor4_times_Tensor1_0
 
class  Tensor4_times_Tensor1_1
 
class  Tensor4_times_Tensor1_2
 
class  Tensor4_times_Tensor1_3
 
class  Tensor4_times_Tensor2_03
 
class  Tensor4_times_Tensor2_0_0
 
class  Tensor4_times_Tensor2_0_1
 
class  Tensor4_times_Tensor2_13
 
class  Tensor4_times_Tensor2_1_0
 
class  Tensor4_times_Tensor2_1_1
 
class  Tensor4_times_Tensor2_23
 
class  Tensor4_times_Tensor2_2_0
 
class  Tensor4_times_Tensor2_2_1
 
class  Tensor4_times_Tensor2_30
 
class  Tensor4_times_Tensor2_32
 
class  Tensor4_times_Tensor2_3_0
 
class  Tensor4_times_Tensor2_3_1
 
class  Tensor4_times_Tensor2_double
 
class  Tensor4_times_Tensor2_single
 
class  Tensor4_times_Tensor2_symmetric_01
 
class  Tensor4_times_Tensor2_symmetric_02
 
class  Tensor4_times_Tensor2_symmetric_03
 
class  Tensor4_times_Tensor2_symmetric_23
 
class  Tensor4_times_Tensor2_symmetric_30
 
class  Tensor4_times_Tensor2_symmetric_32
 
class  Tensor4_times_Tensor3_12_21
 
class  Tensor4_times_Tensor3_23
 
class  Tensor4_times_Tensor3_triple
 
class  Tensor4_times_Tensor4_2345
 
class  transform_Tensor2
 

Enumerations

enum  Layout { column_major , row_major }
 

Functions

template<class A , class B , class T , class U , char i, char j, char k>
auto cross (const Tensor1_Expr< A, T, 3, i > &a, const Tensor1_Expr< B, U, 3, j > &b, const Index< k, 3 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Ddg_and_Ddg0321< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator&& (const Ddg_Expr< A, T, Dim, Dim, i, k, j, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Ddg_and_Ddg0213< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator&& (const Ddg_Expr< A, T, Dim, Dim, i, k, l, j > &a, const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &b)
 
template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr< Ddg_and_Tensor2_symmetric< A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > operator& (const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr< Ddg_and_Tensor2_symmetric< A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > operator& (const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b, const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim23, char i, char j, char k, char l, char m, char n>
Ddg_Expr< Ddg_carat_Ddg_13< A, B, T, U, Dim, Dim23, i, j, k, l, m, n >, typename promote< T, U >::V, Dim, Dim23, i, k, m, noperator^ (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim23, j, l, m, n > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_carat_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, koperator^ (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_carat_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, koperator^ (const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b, const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a)
 
template<class A , class B , class U , int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void T4ddg_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class U , int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void T4ddg_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class U , int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void T4ddg_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class U , int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void T4ddg_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class U , int Dim01, int Dim23, char i, char j, char k, char l>
void T4ddg_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void T4ddg_plus_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &, const Op &)
 
template<class A , class B , class U , int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void T4ddg_plus_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &, const Op &)
 
template<class A , class B , class U , int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void T4ddg_plus_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &, const Op &)
 
template<class A , class B , class U , int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void T4ddg_plus_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim3 > &, const Op &)
 
template<class A , class B , class U , int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void T4ddg_plus_equals_T4ddg (A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Op &)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Ddg_Expr< Ddg_minus_Ddg< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, k, loperator- (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Ddg_mod_Ddg< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator% (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &b)
 
template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr< Ddg_mod_Tensor2_symmetric< A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > operator% (const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr< Ddg_mod_Tensor2_symmetric< A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > operator% (const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b, const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Ddg_Expr< Ddg_or_Ddg< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, k, j, loperator|| (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_or_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, koperator| (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_or_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, koperator| (const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b, const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim01_1, int Dim23_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
Ddg_Expr< Ddg_plus_Ddg< A, B, T, U, Dim01_0, Dim23_0, Dim01_1, Dim23_1, i0, j0, k0, l0, i1, j1, k1, l1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > operator+ (const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &a, const Ddg_Expr< B, U, Dim01_1, Dim23_1, i1, j1, k1, l1 > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3>
promote< T, U >::V T4ddg_times_T4ddg_0213 (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim1, int Current_Dim2, int Current_Dim3>
promote< T, U >::V T4ddg_times_T4ddg_0213 (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim2, int Current_Dim3>
promote< T, U >::V T4ddg_times_T4ddg_0213 (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim3>
promote< T, U >::V T4ddg_times_T4ddg_0213 (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim3 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V T4ddg_times_T4ddg_0213 (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V operator* (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
auto operator* (const Ddg_Expr< A, T, Dim45, Dim01, m, n, i, j > &a, const Ddg_Expr< B, U, Dim45, Dim23, m, n, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
Ddg_Expr< Ddg_times_Ddg_2301< A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim23, i, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim45, i, j, m, n > &a, const Ddg_Expr< B, U, Dim45, Dim23, m, n, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
Ddg_Expr< Ddg_times_Ddg_0123< A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim23, i, j, k, loperator* (const Ddg_Expr< A, T, Dim45, Dim01, m, n, i, j > &a, const Ddg_Expr< B, U, Dim23, Dim45, k, l, m, n > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
Ddg_Expr< Ddg_times_Ddg_2323< A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim23, i, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim45, i, j, m, n > &a, const Ddg_Expr< B, U, Dim23, Dim45, k, l, m, n > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Dg_Expr< B, U, Dim23, Dim4, k, l, m > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Dg_Expr< B, U, Dim23, Dim4, k, l, m > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Dg_Expr< B, U, Dim01, Dim4, i, j, m > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Dg_Expr< B, U, Dim01, Dim4, i, j, m > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
auto operator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const U &d0)
 
template<class A , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
auto operator* (const U &d0, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
auto operator/ (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const U &d0)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_2< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim23, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_2< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, loperator* (const Tensor1_Expr< B, U, Dim23, k > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_3< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, koperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim23, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_3< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, koperator* (const Tensor1_Expr< B, U, Dim23, l > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_0< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim01, i > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_0< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, j, k, loperator* (const Tensor1_Expr< B, U, Dim01, i > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_1< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim01, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_1< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, k, loperator* (const Tensor1_Expr< B, U, Dim01, j > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_23< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, joperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim23, Dim23, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_23< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, joperator* (const Tensor2_Expr< B, U, Dim23, Dim23, k, l > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_32< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, joperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim23, Dim23, l, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_32< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, joperator* (const Tensor2_Expr< B, U, Dim23, Dim23, l, k > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, j, i, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &b, const Ddg_Expr< A, T, Dim01, Dim23, j, i, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_Expr< Ddg_times_Tensor2_13< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, koperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim23, j, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_Expr< Ddg_times_Tensor2_13< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, koperator* (const Tensor2_Expr< B, U, Dim01, Dim23, j, l > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_1< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, k, moperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim23, Dim4, l, m > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_1< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, k, moperator* (const Tensor2_Expr< B, U, Dim23, Dim4, l, m > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_0< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, k, moperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim23, m, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_0< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, k, moperator* (const Tensor2_Expr< B, U, Dim4, Dim23, m, l > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_0< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, m, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim23, m, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_0< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, m, loperator* (const Tensor2_Expr< B, U, Dim4, Dim23, m, k > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_1< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, m, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim23, k, m > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_1< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, m, loperator* (const Tensor2_Expr< B, U, Dim4, Dim23, k, m > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_0< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim2, Dim23, Dim23, i, m, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim2, j, m > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_0< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim2, Dim23, Dim23, i, m, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim2, j, m > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_1< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim2, Dim23, Dim23, i, m, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim2, m, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_1< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim2, Dim23, Dim23, i, m, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim2, m, j > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_0< A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim01, Dim23, Dim23, m, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim1, i, m > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_0< A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim1, m, j, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim1, i, m > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_1< A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim01, Dim23, Dim23, m, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim01, Dim1, m, i > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_1< A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim01, Dim23, Dim23, m, j, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim1, m, i > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_Expr< Ddg_times_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, koperator* (const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_Expr< Ddg_times_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, koperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b, const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, loperator* (const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_23< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, joperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim23, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_23< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, joperator* (const Tensor2_symmetric_Expr< B, U, Dim23, k, l > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, int Dim3, char i, char j, char k, char l, char m, char n>
Tensor4_Expr< Ddg_times_Tensor4_2301_ijkl< A, B, T, U, Dim01, Dim23, Dim2, Dim3, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim01, Dim2, Dim3, i, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, i, j, m, n > &a, const Tensor4_Expr< B, U, Dim23, Dim23, Dim2, Dim3, m, n, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, int Dim3, char i, char j, char k, char l, char m, char n>
Tensor4_Expr< Ddg_times_Tensor4_2301_ijkl< A, B, T, U, Dim01, Dim23, Dim2, Dim3, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim01, Dim2, Dim3, i, j, k, loperator* (const Tensor4_Expr< B, U, Dim23, Dim23, Dim2, Dim3, m, n, k, l > &b, const Ddg_Expr< A, T, Dim01, Dim23, i, j, m, n > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim0, int Dim1, char i, char j, char k, char l, char m, char n>
Tensor4_Expr< Ddg_times_Tensor4_2323_klij< A, B, T, U, Dim01, Dim23, Dim0, Dim1, i, j, k, l, m, n >, typename promote< T, U >::V, Dim0, Dim1, Dim23, Dim23, i, j, k, loperator* (const Ddg_Expr< A, T, Dim01, Dim23, m, n, k, l > &a, const Tensor4_Expr< B, U, Dim0, Dim1, Dim23, Dim23, i, j, m, n > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim0, int Dim1, char i, char j, char k, char l, char m, char n>
Tensor4_Expr< Ddg_times_Tensor4_2323_klij< A, B, T, U, Dim01, Dim23, Dim0, Dim1, i, j, k, l, m, n >, typename promote< T, U >::V, Dim0, Dim1, Dim23, Dim23, i, j, k, loperator* (const Tensor4_Expr< B, U, Dim0, Dim1, Dim23, Dim23, i, j, m, n > &b, const Ddg_Expr< A, T, Dim01, Dim23, m, n, k, l > &a)
 
template<class A , class T , int Dim01, int Dim23, char i, char j, char k, char l>
Ddg_Expr< minus_Ddg< A, T, Dim01, Dim23, i, j, k, l >, T, Dim01, Dim23, i, j, k, loperator- (const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_antisymmetric_Expr< Dg_and_Dg_12< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, j, koperator&& (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim, i, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_antisymmetric_Expr< Dg_and_Dg_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, j, i, koperator&& (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_and_Tensor1< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator& (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor1_Expr< B, U, Dim2, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_and_Tensor1< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator& (const Tensor1_Expr< B, U, Dim2, k > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_and_Tensor2_symmetric< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator& (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_and_Tensor2_symmetric< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator& (const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_divide_generic< A, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator/ (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const U &d0)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void T3dg_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim1, int Current_Dim2>
void T3dg_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim2>
void T3dg_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k>
void T3dg_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2, class Op >
void T3dg_plus_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Op &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim1, int Current_Dim2, class Op >
void T3dg_plus_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Op &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim2, class Op >
void T3dg_plus_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Op &)
 
template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, class Op >
void T3dg_plus_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Op &)
 
template<class A , class U , int Dim01, int Dim2, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void T3dg_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Dim01 > &, const Number< Dim2 > &)
 
template<class A , class U , int Dim01, int Dim2, int Current_Dim1, int Current_Dim2>
void T3dg_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Dim01 > &, const Number< Dim2 > &)
 
template<class A , class U , int Dim01, int Dim2, int Current_Dim2>
void T3dg_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< Dim01 > &, const Number< Dim2 > &)
 
template<class A , class U , int Dim01, int Dim2>
void T3dg_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Dim01 > &, const Number< Dim2 > &)
 
template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2, class Op >
void T3ch_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Op &)
 
template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, int Current_Dim1, int Current_Dim2, class Op >
void T3ch_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Op &)
 
template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, int Current_Dim2, class Op >
void T3ch_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Op &)
 
template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, class Op >
void T3ch_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Op &)
 
template<class A , class U , int Dim12, int Dim0, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void T3ch_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Dim12 > &, const Number< Dim0 > &)
 
template<class A , class U , int Dim12, int Dim0, int Current_Dim1, int Current_Dim2>
void T3ch_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Dim12 > &, const Number< Dim0 > &)
 
template<class A , class U , int Dim12, int Dim0, int Current_Dim2>
void T3ch_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< Dim12 > &, const Number< Dim0 > &)
 
template<class A , class U , int Dim12, int Dim0>
void T3ch_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Dim12 > &, const Number< Dim0 > &)
 
template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2, int N>
void T4ddgrhs0_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< N > &)
 
template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int Current_Dim1, int Current_Dim2, int N>
void T4ddgrhs0_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< N > &)
 
template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int Current_Dim2, int N>
void T4ddgrhs0_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< N > &)
 
template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int N>
void T4ddgrhs0_equals_T3dg (A &iter, const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< N > &)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_minus_Dg< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator- (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_Expr< Dg_minus_Dg_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, Dim, i, j, koperator- (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Dg_Expr< Dg_or_Dg_12< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, j, k, ioperator|| (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim, i, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Dg_Expr< Dg_or_Dg_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, j, k, ioperator|| (const Dg_Expr< A, T, Dim, Dim, j, i, k > &a, const Dg_Expr< B, U, Dim, Dim, k, i, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_plus_Dg< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator+ (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_plus_Dg_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator+ (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim01, Dim2, j, i, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_Expr< Dg_plus_Dg_210< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, Dim, i, j, koperator+ (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Dg_times_Dg_12_01< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, loperator* (const Dg_Expr< A, T, Dim01, Dim01, i, j, k > &a, const Dg_Expr< B, U, Dim01, Dim2, j, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Dg_times_Dg_12_01< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, loperator* (const Dg_Expr< B, U, Dim01, Dim2, j, k, l > &b, const Dg_Expr< A, T, Dim01, Dim01, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Dg_times_Dg_12_20< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim2, Dim01, k, l, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Dg_times_Dg_12_20< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, loperator* (const Dg_Expr< B, U, Dim2, Dim01, k, l, j > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim01, Dim3, i, j, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
Ddg_Expr< Dg_times_Dg_2< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim23, i, j, l, moperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim23, Dim2, l, m, k > &b)
 
template<class A , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_times_generic< A, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const U &d0)
 
template<class A , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_times_generic< A, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, koperator* (const U &d0, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_symmetric_Expr< Dg_times_Tensor1_2< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i, joperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor1_Expr< B, U, Dim2, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_symmetric_Expr< Dg_times_Tensor1_2< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i, joperator* (const Tensor1_Expr< B, U, Dim2, k > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr< Dg_times_Tensor1_1< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, joperator* (const Dg_Expr< A, T, Dim01, Dim2, i, k, j > &a, const Tensor1_Expr< B, U, Dim01, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr< Dg_times_Tensor1_1< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, joperator* (const Tensor1_Expr< B, U, Dim01, k > &b, const Dg_Expr< A, T, Dim01, Dim2, i, k, j > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr< Dg_times_Tensor1_0< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, joperator* (const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &a, const Tensor1_Expr< B, U, Dim01, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr< Dg_times_Tensor1_0< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, joperator* (const Tensor1_Expr< B, U, Dim01, k > &b, const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_0< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim3, i, j, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_0< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim3, i, j, loperator* (const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_1< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim3, i, j, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_1< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim3, i, j, loperator* (const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_1_0< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim3, i, k, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim01, Dim3, j, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_1_0< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim3, i, k, loperator* (const Tensor2_Expr< B, U, Dim01, Dim3, j, l > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_1_1< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim3, i, k, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim3, Dim01, l, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_1_1< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim3, i, k, loperator* (const Tensor2_Expr< B, U, Dim3, Dim01, l, j > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_12< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_12< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_21< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim2, Dim01, k, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_21< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Tensor2_Expr< B, U, Dim2, Dim01, k, j > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_02< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, j, i, k > &a, const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_02< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &b, const Dg_Expr< A, T, Dim01, Dim2, j, i, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_20< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &a, const Tensor2_Expr< B, U, Dim2, Dim01, j, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_20< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, ioperator* (const Tensor2_Expr< B, U, Dim2, Dim01, j, k > &b, const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_01< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a, const Tensor2_Expr< B, U, Dim01, Dim01, j, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_01< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Tensor2_Expr< B, U, Dim01, Dim01, j, k > &b, const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a, const Tensor2_Expr< B, U, Dim01, Dim01, k, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Tensor2_Expr< B, U, Dim01, Dim01, k, j > &b, const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_symmetric_0< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, j, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim2, k, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_symmetric_0< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, j, loperator* (const Tensor2_symmetric_Expr< B, U, Dim2, k, l > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_symmetric_1< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, j, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim2, l, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_symmetric_1< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, j, loperator* (const Tensor2_symmetric_Expr< B, U, Dim2, l, k > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_0< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim01, i, k, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim01, j, l > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_0< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim01, i, k, loperator* (const Tensor2_symmetric_Expr< B, U, Dim01, j, l > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_1< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim01, i, k, loperator* (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim01, l, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_1< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim01, i, k, loperator* (const Tensor2_symmetric_Expr< B, U, Dim01, l, j > &b, const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_12< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_12< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b, const Dg_Expr< A, T, Dim, Dim, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_21< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Dg_Expr< A, T, Dim, Dim, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_21< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, k, j > &b, const Dg_Expr< A, T, Dim, Dim, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Dg_Expr< A, T, Dim, Dim, j, i, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b, const Dg_Expr< A, T, Dim, Dim, j, i, k > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_20< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Dg_Expr< A, T, Dim, Dim, k, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_20< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b, const Dg_Expr< A, T, Dim, Dim, k, i, j > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_01< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a, const Tensor2_symmetric_Expr< B, U, Dim01, j, k > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_01< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim01, j, k > &b, const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a, const Tensor2_symmetric_Expr< B, U, Dim01, k, j > &b)
 
template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim01, k, j > &b, const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &a)
 
template<class A , class T , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< minus_Dg< A, T, Dim01, Dim2, i, j, k >, T, Dim01, Dim2, i, j, koperator- (const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &a)
 
template<typename T >
constexpr bool error_when_instantiated ()
 
template<class T = int, char i, char j, int Dim0, int Dim1>
Tensor2_Expr< Kronecker_Delta< T >, T, Dim0, Dim1, i, jkronecker_delta (const Index< i, Dim0 > &, const Index< j, Dim1 > &)
 Rank 2. More...
 
template<class T = int, char i, int Dim0>
constexpr auto kronecker_delta (const Index< i, Dim0 > &, const int &N1)
 
template<class T = int, char j, int Dim1>
constexpr auto kronecker_delta (const int &N0, const Index< j, Dim1 > &)
 
template<class T = int, char i, char j, int Dim>
Tensor2_symmetric_Expr< Kronecker_Delta_symmetric< T >, T, Dim, i, jkronecker_delta_symmetric (const Index< i, Dim > &, const Index< j, Dim > &)
 
template<class T = int, char i, int Dim0>
constexpr auto kronecker_delta_symmetric (const Index< i, Dim0 > &, const int &N1)
 
template<class T = int, char j, int Dim1>
constexpr auto kronecker_delta_symmetric (const int &N0, const Index< j, Dim1 > &)
 
template<class T = int, char i, char j, int Dim0, int Dim1>
constexpr std::enable_if<(Dim0<=2 &&Dim1<=2), Tensor2_Expr< Levi_Civita< T >, T, Dim0, Dim1, i, j > >::type levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &)
 levi_civita functions to make for easy adhoc use More...
 
template<class T = int, char i, int Dim0>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1)
 
template<class T = int, char j, int Dim1>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &)
 
template<class T = int, char i, char j, char k, int Dim0, int Dim1, int Dim2>
constexpr std::enable_if<(Dim0<=3 &&Dim1<=3 &&Dim2<=3), Tensor3_Expr< Levi_Civita< T >, T, Dim0, Dim1, Dim2, i, j, k > >::type levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &, const Index< k, Dim2 > &)
 Rank 3. More...
 
template<class T = int, char i, char j, int Dim0, int Dim1>
constexpr auto levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &, const int &N2)
 
template<class T = int, char i, char k, int Dim0, int Dim2>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1, const Index< k, Dim2 > &)
 
template<class T = int, char j, char k, int Dim1, int Dim2>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &, const Index< k, Dim2 > &)
 
template<class T = int, char i, int Dim0>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1, const int &N2)
 
template<class T = int, char j, int Dim1>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &, const int &N2)
 
template<class T = int, char k, int Dim2>
constexpr auto levi_civita (const int &N0, const int &N1, const Index< k, Dim2 > &)
 
template<class T = int, char i, char j, char k, char l, int Dim0, int Dim1, int Dim2, int Dim3>
constexpr std::enable_if<(Dim0<=4 &&Dim1<=4 &&Dim2<=4 &&Dim3<=4), Tensor4_Expr< Levi_Civita< T >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > >::type levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &, const Index< k, Dim2 > &, const Index< l, Dim3 > &)
 Rank 4. More...
 
template<class T = int, char i, char j, char k, int Dim0, int Dim1, int Dim2>
constexpr auto levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &, const Index< k, Dim2 > &, const int &N3)
 
template<class T = int, char i, char j, char l, int Dim0, int Dim1, int Dim3>
constexpr auto levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &, const int &N2, const Index< l, Dim3 > &)
 
template<class T = int, char i, char k, char l, int Dim0, int Dim2, int Dim3>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1, const Index< k, Dim2 > &, const Index< l, Dim3 > &)
 
template<class T = int, char j, char k, char l, int Dim1, int Dim2, int Dim3>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &, const Index< k, Dim2 > &, const Index< l, Dim3 > &)
 
template<class T = int, char i, char j, int Dim0, int Dim1>
constexpr auto levi_civita (const Index< i, Dim0 > &, const Index< j, Dim1 > &, const int &N2, const int &N3)
 
template<class T = int, char i, char k, int Dim0, int Dim2>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1, const Index< k, Dim2 > &, const int &N3)
 
template<class T = int, char j, char k, int Dim1, int Dim2>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &, const Index< k, Dim2 > &, const int &N3)
 
template<class T = int, char i, char l, int Dim0, int Dim3>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1, const int &N2, const Index< l, Dim3 > &)
 
template<class T = int, char j, char l, int Dim1, int Dim3>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &, const int &N2, const Index< l, Dim3 > &)
 
template<class T = int, char k, char l, int Dim2, int Dim3>
constexpr auto levi_civita (const int &N0, const int &N1, const Index< k, Dim2 > &, const Index< l, Dim3 > &)
 
template<class T = int, char i, int Dim0>
constexpr auto levi_civita (const Index< i, Dim0 > &, const int &N1, const int &N2, const int &N3)
 
template<class T = int, char j, int Dim1>
constexpr auto levi_civita (const int &N0, const Index< j, Dim1 > &, const int &N2, const int &N3)
 
template<class T = int, char k, int Dim2>
constexpr auto levi_civita (const int &N0, const int &N1, const Index< k, Dim2 > &, const int &N3)
 
template<class T = int, char l, int Dim3>
constexpr auto levi_civita (const int &N0, const int &N1, const int &N2, const Index< l, Dim3 > &)
 
template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim1_0, int Dim1_1, char i0, char j0, char i1, char j1>
permute (const Tensor2_Expr< A, T, Dim0_0, Dim0_1, i0, j0 > &, const Tensor2_Expr< B, U, Dim1_0, Dim1_1, i1, j1 > &rhs, const int N0, const int N1)
 
template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim1_0, int Dim1_1, int Dim1_2, char i0, char j0, char k0, char i1, char j1, char k1>
permute (const Tensor3_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, i0, j0, k0 > &, const Tensor3_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, i1, j1, k1 > &rhs, const int N0, const int N1, const int N2)
 
template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim1_01, int Dim1_2, char i0, char j0, char k0, char i1, char j1, char k1>
permute (const Tensor3_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, i0, j0, k0 > &, const Dg_Expr< B, U, Dim1_01, Dim1_2, i1, j1, k1 > &rhs, const int N0, const int N1, const int N2)
 
template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim0_3, int Dim1_0, int Dim1_1, int Dim1_2, int Dim1_3, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
permute (const Tensor4_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, Dim0_3, i0, j0, k0, l0 > &, const Tensor4_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, Dim1_3, i1, j1, k1, l1 > &rhs, const int N0, const int N1, const int N2, const int N3)
 
template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim0_3, int Dim1_01, int Dim1_23, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
permute (const Tensor4_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, Dim0_3, i0, j0, k0, l0 > &, const Ddg_Expr< B, U, Dim1_01, Dim1_23, i1, j1, k1, l1 > &rhs, const int N0, const int N1, const int N2, const int N3)
 
template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim1_0, int Dim1_1, char i0, char j0, char i1, char j1>
U & permute_ref (const Tensor2_Expr< A, T, Dim0_0, Dim0_1, i0, j0 > &, const Tensor2_Expr< B, U, Dim1_0, Dim1_1, i1, j1 > &rhs, const int N0, const int N1)
 
 DECLARE_PROMOTE (int, double, double)
 
 DECLARE_PROMOTE (double, int, double)
 
 DECLARE_PROMOTE (int, std::complex< double >, std::complex< double >)
 
 DECLARE_PROMOTE (std::complex< double >, int, std::complex< double >)
 
 DECLARE_PROMOTE (double, std::complex< double >, std::complex< double >)
 
 DECLARE_PROMOTE (std::complex< double >, double, std::complex< double >)
 
 DECLARE_PROMOTE (adouble, double, adouble)
 
 DECLARE_PROMOTE (double, adouble, adouble)
 
 DECLARE_PROMOTE (adouble, int, adouble)
 
 DECLARE_PROMOTE (int, adouble, adouble)
 
 DECLARE_PROMOTE (adtl::adouble, double, adtl::adouble)
 
 DECLARE_PROMOTE (double, adtl::adouble, adtl::adouble)
 
 DECLARE_PROMOTE (adtl::adouble, int, adtl::adouble)
 
 DECLARE_PROMOTE (int, adtl::adouble, adtl::adouble)
 
 DECLARE_PROMOTE (adub, double, adub)
 
 DECLARE_PROMOTE (double, adub, adub)
 
 DECLARE_PROMOTE (adub, int, adub)
 
 DECLARE_PROMOTE (int, adub, adub)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Riemann_minus_Riemann< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator- (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Riemann_Expr< B, U, Dim, i, j, k, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Riemann_plus_Riemann< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator+ (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Riemann_Expr< B, U, Dim, i, j, k, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V operator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, j, k, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V operator* (const Ddg_Expr< B, U, Dim, Dim, i, j, k, l > &b, const Riemann_Expr< A, T, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V operator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V operator* (const Ddg_Expr< B, U, Dim, Dim, i, j, k, l > &b, const Riemann_Expr< A, T, Dim, i, k, j, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_0< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, j, k, loperator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_0< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, j, k, loperator* (const Tensor1_Expr< B, U, Dim, i > &b, const Riemann_Expr< A, T, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_1< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, k, loperator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_1< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, k, loperator* (const Tensor1_Expr< B, U, Dim, j > &b, const Riemann_Expr< A, T, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_2< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, loperator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_2< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, loperator* (const Tensor1_Expr< B, U, Dim, k > &b, const Riemann_Expr< A, T, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_3< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, koperator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim, l > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_3< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, koperator* (const Tensor1_Expr< B, U, Dim, l > &b, const Riemann_Expr< A, T, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Riemann_times_Tensor2_symmetric_0< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, j, loperator* (const Riemann_Expr< A, T, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Riemann_times_Tensor2_symmetric_0< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, j, loperator* (const Tensor2_symmetric_Expr< B, U, Dim, i, k > &b, const Riemann_Expr< A, T, Dim, i, j, k, l > &a)
 
template<class A , class B , char i, char j, char k, char l>
double operator* (const Riemann_Expr< A, i, j, k, l > &a, const Tensor4_Expr< B, i, j, k, l > &b)
 
template<class A , class B , char i, char j, char k, char l>
double operator* (const Tensor4_Expr< B, i, j, k, l > &b, const Riemann_Expr< A, i, j, k, l > &a)
 
template<class T , int Dim, char i>
const Tensor1_Expr< const d_boundary_Tensor0< T, Dim, i >, typename promote< T, double >::V, Dim, id_boundary (const Tensor0< T * > &a, const Index< i, Dim > index, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz, const Tensor2< bool, Dim, 2 > &boundary)
 
template<class T >
promote< T, double >::V d_one_sided (const Tensor0< T * > &a, const Number< 0 > n1, const int &di, const int &dj, const int &dk, const double &dx, const double &dy, const double &dz)
 
template<class T >
promote< T, double >::V d_one_sided (const Tensor0< T * > &a, const Number< 1 > n1, const int &di, const int &dj, const int &dk, const double &dx, const double &dy, const double &dz)
 
template<class T >
promote< T, double >::V d_one_sided (const Tensor0< T * > &a, const Number< 2 > n1, const int &di, const int &dj, const int &dk, const double &dx, const double &dy, const double &dz)
 
template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr< const dd_boundary_Tensor0< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, jdd_boundary (const Tensor0< T * > &a, const Index< i, Dim > index3, const Index< j, Dim > index4, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz, const Tensor2< bool, Dim, 2 > &boundary)
 
template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr< const ddTensor0< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, jdd (const Tensor0< T * > &a, const Index< i, Dim > index1, const Index< j, Dim > index2, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz)
 
template<class T >
promote< T, double >::V diffusion (const Tensor0< T * > &a, const int &di, const int &dj, const int &dk, const double &dx)
 
template<class T , int Dim, char i>
const Tensor1_Expr< const dTensor0< T, Dim, i >, typename promote< T, double >::V, Dim, id (const Tensor0< T * > &a, const Index< i, Dim > index, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz)
 
template<class T >
promote< T, double >::V interpolate (const Tensor0< T * > &a, const int &di, const int &dj, const int &dk, const int &i0, const int &j0, const int &k0, const double distance[3], const double conjugate[3])
 
template<class T , int Dim, char i, int axis>
const Tensor1_Expr< const d_one_sided_Tensor1< T, Dim, i, axis >, typename promote< T, double >::V, Dim, id_one_sided (const Tensor1< T *, Dim > &a, const Number< axis > n1, const Index< i, Dim > index1, const int &di, const int &dj, const int &dk, const double &dx, const double &dy, const double &dz)
 
template<class T , int Dim0, int Dim12, char i, char j, char k>
const Dg_Expr< const ddTensor1< T, Dim0, Dim12, i, j, k >, typename promote< T, double >::V, Dim0, Dim12, i, j, kdd (const Tensor1< T *, Dim0 > &a, const Index< k, Dim0 > index0, const Index< i, Dim12 > index1, const Index< j, Dim12 > index2, const Tensor1< int, Dim12 > &d_ijk, const Tensor1< double, Dim12 > &d_xyz)
 
template<class T , int Dim, char i>
const Tensor1_Expr< const diffusion_Tensor1< T, Dim, i >, typename promote< T, double >::V, Dim, idiffusion (const Tensor1< T *, Dim > &a, const Index< i, Dim > index1, const int &di, const int &dj, const int &dk, const double &dx)
 
template<class T , int Dim0, int Dim1, char i, char j>
const Tensor2_Expr< const dTensor1< T, Dim0, Dim1, i, j >, typename promote< T, double >::V, Dim0, Dim1, i, jd (const Tensor1< T *, Dim0 > &a, const Index< i, Dim0 > index1, const Index< j, Dim1 > index2, const Tensor1< int, Dim1 > &d_ijk, const Tensor1< double, Dim1 > &d_xyz)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< generic_minus_Tensor1< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator- (const U &d0, const Tensor1_Expr< A, T, Dim, i > &a)
 
template<class T , int Dim, char i>
const Tensor1_Expr< const interpolate_Tensor1< T, Dim, i >, typename promote< T, double >::V, Dim, iinterpolate (const Tensor1< T *, Dim > &a, const Index< i, Dim > index1, const int &di, const int &dj, const int &dk, const int &i0, const int &j0, const int &k0, const double distance[3], const double conjugate[3])
 
template<class A , class T , int Dim, char i>
Tensor1_Expr< minus_Tensor1< A, T, Dim, i >, T, Dim, ioperator- (const Tensor1_Expr< A, T, Dim, i > &a)
 
template<class A , class B , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_and_Tensor1< A, B, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator& (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< Tensor1_carat_Tensor1< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, joperator^ (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, j > &b)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_divide_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator/ (const Tensor1_Expr< A, T, Dim, i > &a, const U &d0)
 
template<class A , class B , class U , int Dim, char i, int Current_Dim>
void T1_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i>
void T1_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, int Current_Dim>
void T1_equals_addolc_left_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i>
void T1_equals_addolc_left_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, int Current_Dim>
void T1_equals_addolc_right_T1 (A &iter, Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i>
void T1_equals_addolc_right_T1 (A &iter, Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, int Current_Dim>
void T1_plus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i>
void T1_plus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, int Current_Dim>
void T1_minus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i>
void T1_minus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< 1 > &)
 
template<class A , class U , int Current_Dim>
void T1_equals_generic (A &iter, const U &u, const Number< Current_Dim > &)
 
template<class A , class U >
void T1_equals_generic (A &iter, const U &u, const Number< 1 > &)
 
template<class A , class U , int Current_Dim>
void T1_plus_equals_generic (A &iter, const U &u, const Number< Current_Dim > &)
 
template<class A , class U >
void T1_plus_equals_generic (A &iter, const U &u, const Number< 1 > &)
 
template<class A , class U , int Current_Dim>
void T1_minus_equals_generic (A &iter, const U &u, const Number< Current_Dim > &)
 
template<class A , class U >
void T1_minus_equals_generic (A &iter, const U &u, const Number< 1 > &)
 
template<class A , class U , int Current_Dim>
void T1_times_equals_generic (A &iter, const U &u, const Number< Current_Dim > &)
 
template<class A , class U >
void T1_times_equals_generic (A &iter, const U &u, const Number< 1 > &)
 
template<class A , class U , int Current_Dim>
void T1_divide_equals_generic (A &iter, const U &u, const Number< Current_Dim > &)
 
template<class A , class U >
void T1_divide_equals_generic (A &iter, const U &u, const Number< 1 > &)
 
template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void T2rhs0_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim1, char i, int N>
void T2rhs0_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void T2rhs0_plus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim1, char i, int N>
void T2rhs0_plus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void T2rhs0_minus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim1, char i, int N>
void T2rhs0_minus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs0_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs0_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs0_plus_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs0_plus_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs0_minus_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs0_minus_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs0_times_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs0_times_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs0_divide_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs0_divide_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void T2rhs1_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim1, char i, int N>
void T2rhs1_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void T2rhs1_plus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim1, char i, int N>
void T2rhs1_plus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void T2rhs1_minus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim1, char i, int N>
void T2rhs1_minus_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs1_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs1_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs1_plus_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs1_plus_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs1_minus_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs1_minus_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs1_times_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs1_times_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class U , int N, int Current_Dim>
void T2rhs1_divide_equals_generic (A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)
 
template<class A , class U , int N>
void T2rhs1_divide_equals_generic (A &iter, const U &u, const Number< N > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, int N1, int N2, int Current_Dim>
void T3dgrhs12_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > &result, const Number< N1 > &NN1, const Number< N2 > &NN2, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i, int N1, int N2>
void T3dgrhs12_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > &result, const Number< N1 > &, const Number< N2 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, int N1, int N2, int Current_Dim>
void T3dgrhs01_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > &result, const Number< N1 > &NN1, const Number< N2 > &NN2, const Number< Current_Dim > &)
 
template<class A , class B , class U , int Dim, char i, int N1, int N2>
void T3dgrhs01_equals_T1 (A &iter, const Tensor1_Expr< B, U, Dim, i > &result, const Number< N1 > &, const Number< N2 > &, const Number< 1 > &)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_minus_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator- (const Tensor1_Expr< A, T, Dim, i > &a, const U &d0)
 
template<class A , class B , class T , class U , char i, int Dim>
Tensor1_Expr< Tensor1_minus_Tensor1< A, B, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator- (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< Tensor1_or_Tensor1< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, joperator|| (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, j > &b)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_plus_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator+ (const Tensor1_Expr< A, T, Dim, i > &a, const U &d0)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_plus_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator+ (const U &d0, const Tensor1_Expr< A, T, Dim, i > &a)
 
template<class A , class B , class T , class U , char i, int Dim>
Tensor1_Expr< Tensor1_plus_Tensor1< A, B, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator+ (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_times_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator* (const Tensor1_Expr< A, T, Dim, i > &a, const U &d0)
 
template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_times_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, ioperator* (const U &d0, const Tensor1_Expr< A, T, Dim, i > &a)
 
template<class A , class B , class T , class U , int Dim, char i, int Current_Dim>
promote< T, U >::V T1_times_T1 (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b, const Number< Current_Dim > &)
 
template<class A , class B , class T , class U , int Dim, char i>
promote< T, U >::V T1_times_T1 (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, char i>
promote< T, U >::V operator* (const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< Tensor1_times_Tensor1< A, B, T, U, Dim0, Dim1, i, j >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor1_Expr< A, T, Dim0, i > &a, const Tensor1_Expr< B, U, Dim1, j > &b)
 
template<class T , int Tensor_Dim>
std::ostream & operator<< (std::ostream &os, const FTensor::Tensor1< T, Tensor_Dim > &t)
 
template<class T , int Tensor_Dim>
std::istream & operator>> (std::istream &is, FTensor::Tensor1< T, Tensor_Dim > &t)
 
template<class A , class T , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< conj_Tensor2< A, T, Dim0, Dim1, i, j >, T, Dim0, Dim1, i, jconj (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a)
 
template<class A , class T , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< minus_Tensor2< A, T, Dim0, Dim1, i, j >, T, Dim0, Dim1, i, joperator- (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, char i0, char j0, char i1>
auto operator& (const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a, const Tensor1_Expr< B, U, Dim0_1, i1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, char i0, char j0, char i1>
auto operator& (const Tensor1_Expr< B, U, Dim0_1, i1 > &b, const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
auto operator^ (const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< Tensor2_divide_generic< A, T, U, Dim0, Dim1, i, j >, typename promote< T, U >::V, Dim0, Dim1, i, joperator/ (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const U &d0)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_minus_Tensor2< A, B, T, U, Dim0_0, Dim1_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, i0, j0 > operator- (const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_or_Tensor2< A, B, T, U, Dim0_0, Dim1_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim0_0, i0, j0 > operator|| (const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_plus_Tensor2< A, B, T, U, Dim0_0, Dim1_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, i0, j0 > operator+ (const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< Tensor2_times_generic< A, T, U, Dim0, Dim1, i, j >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const U &d0)
 
template<class A , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< Tensor2_times_generic< A, T, U, Dim0, Dim1, i, j >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const U &d0, const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto operator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor1_Expr< B, U, Dim1, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto operator* (const Tensor1_Expr< B, U, Dim1, j > &b, const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto operator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor1_Expr< B, U, Dim0, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto operator* (const Tensor1_Expr< B, U, Dim0, i > &b, const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor3_Expr< Tensor2_times_Tensor1< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim1, Dim2, i, j, koperator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor1_Expr< B, U, Dim2, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor3_Expr< Tensor2_times_Tensor1< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim1, Dim2, i, j, koperator* (const Tensor1_Expr< B, U, Dim2, k > &b, const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V T2_times_T2 (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim1>
promote< T, U >::V T2_times_T2 (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote< T, U >::V T2_times_T2 (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote< T, U >::V operator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V T2_times_switched_T2 (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim1>
promote< T, U >::V T2_times_switched_T2 (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote< T, U >::V T2_times_switched_T2 (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote< T, U >::V operator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor2_times_Tensor2_10< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor2_times_Tensor2_11< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor2_times_Tensor2_00< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor2_Expr< A, T, Dim1, Dim0, j, i > &a, const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor2_times_Tensor2_01< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor2_Expr< A, T, Dim1, Dim0, j, i > &a, const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor4_Expr< Tensor2_times_Tensor2< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim3, i, j, k, loperator* (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b)
 
template<class A , class B , class T , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< transform_Tensor2< A, B, T, Dim0, Dim1, i, j >, T, Dim0, Dim1, i, jtransform (const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, B function)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::ostream & Tensor2_ostream_row (std::ostream &os, const FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &t, const int &i)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::ostream & operator<< (std::ostream &os, const FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &t)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::istream & Tensor2_istream_row (std::istream &is, FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &t, const int &i)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::istream & operator>> (std::istream &is, FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &t)
 
template<class T , int Tensor_Dim>
std::ostream & Tensor2_antisymmetric_ostream_row (std::ostream &os, const FTensor::Tensor2_antisymmetric< T, Tensor_Dim > &t, const int &i)
 
template<class T , int Tensor_Dim>
std::istream & Tensor2_antisymmetric_istream_row (std::istream &is, FTensor::Tensor2_antisymmetric< T, Tensor_Dim > &t, const int &i)
 
template<class T , int Dim01, int Dim2, char i, char j, char k>
const Dg_Expr< const d_boundary_Tensor2_symmetric< T, Dim01, Dim2, i, j, k >, typename promote< T, double >::V, Dim01, Dim2, i, j, kd_boundary (const Tensor2_symmetric< T *, Dim01 > &a, const Index< i, Dim01 > index1, const Index< j, Dim01 > index2, const Index< k, Dim2 > index3, const Tensor1< int, Dim2 > &d_ijk, const Tensor1< double, Dim2 > &d_xyz, const Tensor2< bool, Dim2, 2 > &boundary)
 
template<class T , int Dim, char i, char j, int axis>
const Tensor2_symmetric_Expr< const d_one_sided_Tensor2_symmetric< T, Dim, i, j, axis >, typename promote< T, double >::V, Dim, i, jd_one_sided (const Tensor2_symmetric< T *, Dim > &a, const Number< axis > n1, const Index< i, Dim > index1, const Index< j, Dim > index2, const int &di, const int &dj, const int &dk, const double &dx, const double &dy, const double &dz)
 
template<class T , int Dim01, int Dim23, char i, char j, char k, char l>
const Ddg_Expr< const dd_boundary_Tensor2_symmetric< T, Dim01, Dim23, i, j, k, l >, typename promote< T, double >::V, Dim01, Dim23, i, j, k, ldd_boundary (const Tensor2_symmetric< T *, Dim01 > &a, const Index< i, Dim01 > index1, const Index< j, Dim01 > index2, const Index< k, Dim23 > index3, const Index< l, Dim23 > index4, const Tensor1< int, Dim23 > &d_ijk, const Tensor1< double, Dim23 > &d_xyz, const Tensor2< bool, Dim23, 2 > &boundary)
 
template<class T , int Dim01, int Dim23, char i, char j, char k, char l>
const Ddg_Expr< const ddTensor2_symmetric< T, Dim01, Dim23, i, j, k, l >, typename promote< T, double >::V, Dim01, Dim23, i, j, k, ldd (const Tensor2_symmetric< T *, Dim01 > &a, const Index< i, Dim01 > index1, const Index< j, Dim01 > index2, const Index< k, Dim23 > index3, const Index< l, Dim23 > index4, const Tensor1< int, Dim23 > &d_ijk, const Tensor1< double, Dim23 > &d_xyz)
 
template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr< const diffusion_Tensor2_symmetric< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, jdiffusion (const Tensor2_symmetric< T *, Dim > &a, const Index< i, Dim > index1, const Index< j, Dim > index2, const int &di, const int &dj, const int &dk, const double &dx)
 
template<class T , int Dim01, int Dim2, char i, char j, char k>
const Dg_Expr< const dTensor2_symmetric< T, Dim01, Dim2, i, j, k >, typename promote< T, double >::V, Dim01, Dim2, i, j, kd (const Tensor2_symmetric< T *, Dim01 > &a, const Index< i, Dim01 > index1, const Index< j, Dim01 > index2, const Index< k, Dim2 > index3, const Tensor1< int, Dim2 > &d_ijk, const Tensor1< double, Dim2 > &d_xyz)
 
template<class A , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< generic_minus_Tensor2_symmetric< A, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, joperator- (const U &d0, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr< const interpolate_Tensor2_symmetric< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, jinterpolate (const Tensor2_symmetric< T *, Dim > &a, const Index< i, Dim > index1, const Index< j, Dim > index2, const int &di, const int &dj, const int &dk, const int &i0, const int &j0, const int &k0, const double distance[3], const double conjugate[3])
 
template<class A , class T , int Dim, char i, char j>
Tensor2_symmetric_Expr< minus_Tensor2_symmetric< A, T, Dim, i, j >, T, Dim, i, joperator- (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_symmetric_and_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, i0, j0 > operator& (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
auto operator^ (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
auto operator^ (const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b, const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Ddg_Expr< Tensor2_symmetric_carat_Tensor2_symmetric< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, k, loperator^ (const Tensor2_symmetric_Expr< A, T, Dim, i, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b)
 
template<class A , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< Tensor2_symmetric_divide_generic< A, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, joperator/ (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const U &d0)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void T2s_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void T2s_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j>
void T2s_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void T2s_equals_adolc_left_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void T2s_equals_adolc_left_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j>
void T2s_equals_adolc_left_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void T2s_plus_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void T2s_plus_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j>
void T2s_plus_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void T2s_minus_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void T2s_minus_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j>
void T2s_minus_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void T2s_and_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void T2s_and_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class U , int Dim, char i, char j>
void T2s_and_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class U , int Current_Dim0, int Current_Dim1>
void T2s_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class U , int Current_Dim1>
void T2s_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class U >
void T2s_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class U , int Current_Dim0, int Current_Dim1>
void T2s_plus_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class U , int Current_Dim1>
void T2s_plus_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class U >
void T2s_plus_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class U , int Current_Dim0, int Current_Dim1>
void T2s_minus_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class U , int Current_Dim1>
void T2s_minus_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class U >
void T2s_minus_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class U , int Current_Dim0, int Current_Dim1>
void T2s_times_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class U , int Current_Dim1>
void T2s_times_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class U >
void T2s_times_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class U , int Current_Dim0, int Current_Dim1>
void T2s_divide_equals_generic (A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class U , int Current_Dim1>
void T2s_divide_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class U >
void T2s_divide_equals_generic (A &iter, const U &u, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class U , int Dim01, char i, char j, int N, int Current_Dim0, int Current_Dim1>
void T3dgrhs2_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< N > &)
 
template<class A , class B , class U , int Dim01, char i, char j, int N, int Current_Dim1>
void T3dgrhs2_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< N > &)
 
template<class A , class B , class U , int Dim01, char i, char j, int N>
void T3dgrhs2_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< 1 > &, const Number< 1 > &, const Number< N > &)
 
template<class A , class B , class U , int Dim01, char i, char j, int N0, int N1, int Current_Dim0, int Current_Dim1>
void T4ddgrhs01_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< N0 > &, const Number< N1 > &)
 
template<class A , class B , class U , int Dim01, char i, char j, int N0, int N1, int Current_Dim1>
void T4ddgrhs01_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< N0 > &, const Number< N1 > &)
 
template<class A , class B , class U , int Dim01, char i, char j, int N0, int N1>
void T4ddgrhs01_equals_T2s (A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< 1 > &, const Number< 1 > &, const Number< N0 > &, const Number< N1 > &)
 
template<class A , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< Tensor2_symmetric_minus_generic< A, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, joperator- (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const U &d0)
 
template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_symmetric_minus_Tensor2< A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, Dim_0, i0, j0 > operator- (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_minus_Tensor2_symmetric< A, B, T, U, Dim0_0, Dim1_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, i0, j0 > operator- (const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_symmetric_minus_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, i0, j0 > operator- (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_symmetric_mod_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, i0, j0 > operator% (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class T , class U , int Dim, char i, char j>
auto operator+ (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const U &d0)
 
template<class A , class T , class U , int Dim, char i, char j>
auto operator+ (const U &d0, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_symmetric_plus_Tensor2< A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, Dim_0, i0, j0 > operator+ (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b)
 
template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_symmetric_plus_Tensor2< A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, Dim_0, i0, j0 > operator+ (const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &b, const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a)
 
template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_symmetric_plus_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, i0, j0 > operator+ (const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &a, const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &b)
 
template<class A , class T , class U , int Dim, char i, char j>
auto operator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const U &d0)
 
template<class A , class T , class U , int Dim, char i, char j>
auto operator* (const U &d0, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr< Tensor2_symmetric_times_Tensor1_1< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, ioperator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor1_Expr< B, U, Dim, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr< Tensor2_symmetric_times_Tensor1_0< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, ioperator* (const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a, const Tensor1_Expr< B, U, Dim, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr< Tensor2_symmetric_times_Tensor1_1< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, ioperator* (const Tensor1_Expr< B, U, Dim, j > &b, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr< Tensor2_symmetric_times_Tensor1_0< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, ioperator* (const Tensor1_Expr< B, U, Dim, j > &b, const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
Dg_Expr< Tensor2_symmetric_times_Tensor1< A, B, T, U, Dim, Dim2, i, j, k >, typename promote< T, U >::V, Dim, Dim2, i, j, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor1_Expr< B, U, Dim2, k > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
Dg_Expr< Tensor2_symmetric_times_Tensor1< A, B, T, U, Dim, Dim2, i, j, k >, typename promote< T, U >::V, Dim, Dim2, i, j, koperator* (const Tensor1_Expr< B, U, Dim2, k > &b, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V T2s_times_T2_01 (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote< T, U >::V T2s_times_T2_01 (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, i, j > &b, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V T2s_times_T2_01 (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, i, j > &b, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V operator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, i, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V operator* (const Tensor2_Expr< B, U, Dim, Dim, i, j > &b, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V T2s_times_T2_01 (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote< T, U >::V T2s_times_T2_01 (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, j, i > &b, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V T2s_times_T2_01 (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, j, i > &b, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V operator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, j, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V operator* (const Tensor2_Expr< B, U, Dim, Dim, j, i > &b, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_10< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim1, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_10< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_Expr< B, U, Dim, Dim1, j, k > &b, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_11< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_11< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_Expr< B, U, Dim1, Dim, k, j > &b, const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_00< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a, const Tensor2_Expr< B, U, Dim, Dim1, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_00< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_Expr< B, U, Dim, Dim1, j, k > &b, const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_01< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a, const Tensor2_Expr< B, U, Dim1, Dim, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_01< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, koperator* (const Tensor2_Expr< B, U, Dim1, Dim, k, j > &b, const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V T2s_times_T2s (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote< T, U >::V T2s_times_T2s (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V T2s_times_T2s (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V operator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V T2s_times_switched_T2s (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote< T, U >::V T2s_times_switched_T2s (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, i > &b, const Number< 1 > &, const Number< Current_Dim1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V T2s_times_switched_T2s (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, i > &b, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V operator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_10< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_11< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, k, j > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_00< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_01< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, koperator* (const Tensor2_symmetric_Expr< A, T, Dim, j, i > &a, const Tensor2_symmetric_Expr< B, U, Dim, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, char k, char l>
Ddg_Expr< Tensor2_symmetric_times_Tensor2_symmetric< A, B, T, U, Dim0, Dim1, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, j, k, loperator* (const Tensor2_symmetric_Expr< A, T, Dim0, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim1, k, l > &b)
 
template<class T , int Tensor_Dim>
std::ostream & Tensor2_symmetric_ostream_row (std::ostream &os, const FTensor::Tensor2_symmetric< T, Tensor_Dim > &t, const int &i)
 
template<class T , int Tensor_Dim>
std::ostream & operator<< (std::ostream &os, const FTensor::Tensor2_symmetric< T, Tensor_Dim > &t)
 
template<class T , int Tensor_Dim>
std::istream & Tensor2_symmetric_istream_row (std::istream &is, FTensor::Tensor2_symmetric< T, Tensor_Dim > &t, const int &i)
 
template<class T , int Tensor_Dim>
std::istream & operator>> (std::istream &is, FTensor::Tensor2_symmetric< T, Tensor_Dim > &t)
 
template<class A , class T , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor3_Expr< minus_Tensor3< A, T, Dim0, Dim1, Dim2, i, j, k >, T, Dim0, Dim1, Dim2, i, j, koperator- (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim0_1, int Dim1_1, int Dim2_1, char i0, char j0, char k0, char i1, char j1, char k1>
Tensor3_Expr< Tensor3_minus_Tensor3< A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1, Dim1_1, Dim2_1, i0, j0, k0, i1, j1, k1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > operator- (const Tensor3_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > &a, const Tensor3_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, i1, j1, k1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim0_1, int Dim1_1, int Dim2_1, char i0, char j0, char k0, char i1, char j1, char k1>
auto operator|| (const Tensor3_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > &a, const Tensor3_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, i1, j1, k1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim0_1, int Dim1_1, int Dim2_1, char i0, char j0, char k0, char i1, char j1, char k1>
Tensor3_Expr< Tensor3_plus_Tensor3< A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1, Dim1_1, Dim2_1, i0, j0, k0, i1, j1, k1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > operator+ (const Tensor3_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > &a, const Tensor3_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, i1, j1, k1 > &b)
 
template<class T , int Dim0, int Dim1, int Dim2, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void T3_increment (const Tensor3< T, Dim0, Dim1, Dim2 > &iter, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class T , int Dim0, int Dim1, int Dim2, int Current_Dim1, int Current_Dim2>
void T3_increment (const Tensor3< T, Dim0, Dim1, Dim2 > &iter, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class T , int Dim0, int Dim1, int Dim2, int Current_Dim2>
void T3_increment (const Tensor3< T, Dim0, Dim1, Dim2 > &iter, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class T , int Dim0, int Dim1, int Dim2>
void T3_increment (const Tensor3< T, Dim0, Dim1, Dim2 > &iter, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_012 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_012 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3dg_012 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3dg_012 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, i, j, k > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_201 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_201 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3dg_201 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote< T, U >::V T3_times_T3dg_201 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, k, i, j > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, k, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_120 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_120 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3dg_120 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote< T, U >::V T3_times_T3dg_120 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, j, k, i > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, j, k, i > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_102 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_102 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3dg_102 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3dg_102 (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, j, i, k > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, j, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_210 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_210 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3dg_210 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote< T, U >::V T3_times_T3dg_210 (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, k, j, i > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_021 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3dg_021 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3dg_021 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote< T, U >::V T3_times_T3dg_021 (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, i, k, j > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, i, k, j > &b)
 
template<class A , class B , class T , class U , int Dim2, int Dim1, int Dim01, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Dg_02_20< A, B, T, U, Dim2, Dim1, Dim01, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim01, i, loperator* (const Tensor3_Expr< A, T, Dim2, Dim1, Dim01, j, i, k > &a, const Dg_Expr< B, U, Dim01, Dim2, k, l, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim, char i, char j, char k, char l, char m>
Tensor4_Expr< Tensor3_times_Dg< A, B, T, U, Dim0, Dim1, Dim, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim, Dim2, i, j, l, moperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, l, k, m > &b)
 
template<class A , class B , class T , class U , int Dim03, int Dim14, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Dg_12_12< A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim5, k, loperator* (const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim03, Dim5, i, j, l > &b)
 
template<class A , class B , class T , class U , int Dim03, int Dim14, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Dg_12_12< A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim5, k, loperator* (const Dg_Expr< B, U, Dim03, Dim5, i, j, l > &b, const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &a)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const U &d0)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const U &d0, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator/ (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const U &d0)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator/ (const U &d0, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_1< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor1_Expr< B, U, Dim1, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_1< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor1_Expr< B, U, Dim1, j > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_0< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor1_Expr< B, U, Dim0, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_0< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor1_Expr< B, U, Dim0, i > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_2< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor1_Expr< B, U, Dim2, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_2< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor1_Expr< B, U, Dim2, k > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto operator* (const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, loperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, loperator* (const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, loperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, loperator* (const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, loperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &a, const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, loperator* (const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, loperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &a, const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, loperator* (const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b, const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, loperator* (const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, loperator* (const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, loperator* (const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, loperator* (const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_12< A, B, T, U, Dim0, Dim, i, j, k >, typename promote< T, U >::V, Dim0, ioperator* (const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_12< A, B, T, U, Dim0, Dim, i, j, k >, typename promote< T, U >::V, Dim0, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b, const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim1, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_02< A, B, T, U, Dim1, Dim, i, j, k >, typename promote< T, U >::V, Dim1, ioperator* (const Tensor3_Expr< A, T, Dim, Dim1, Dim, j, i, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim1, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_02< A, B, T, U, Dim1, Dim, i, j, k >, typename promote< T, U >::V, Dim1, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b, const Tensor3_Expr< A, T, Dim, Dim1, Dim, j, i, k > &a)
 
template<class A , class B , class T , class U , int Dim2, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_01< A, B, T, U, Dim2, Dim, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Tensor3_Expr< A, T, Dim, Dim, Dim2, j, k, i > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b)
 
template<class A , class B , class T , class U , int Dim2, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_01< A, B, T, U, Dim2, Dim, i, j, k >, typename promote< T, U >::V, Dim2, ioperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, k > &b, const Tensor3_Expr< A, T, Dim, Dim, Dim2, j, k, i > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_symmetric_1< A, B, T, U, Dim0, Dim, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim, Dim2, i, l, koperator* (const Tensor3_Expr< A, T, Dim0, Dim, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_symmetric_1< A, B, T, U, Dim0, Dim, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim, Dim2, i, l, koperator* (const Tensor2_symmetric_Expr< B, U, Dim, j, l > &b, const Tensor3_Expr< A, T, Dim0, Dim, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_symmetric_0< A, B, T, U, Dim, Dim1, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim, Dim1, Dim2, l, j, koperator* (const Tensor3_Expr< A, T, Dim, Dim1, Dim2, i, j, k > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, l > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_symmetric_0< A, B, T, U, Dim, Dim1, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim, Dim1, Dim2, l, j, koperator* (const Tensor2_symmetric_Expr< B, U, Dim, i, l > &b, const Tensor3_Expr< A, T, Dim, Dim1, Dim2, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3_012 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3_012 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3_012 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3_012 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3_201 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3_201 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3_201 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3_201 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3_120 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3_120 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3_120 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3_120 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3_102 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3_102 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3_102 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3_102 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3_210 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3_210 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3_210 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3_210 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3_times_T3_021 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3_times_T3_021 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3_times_T3_021 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V T3_times_T3_021 (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b)
 
template<class A , class B , class T , class U , int Dim04, int Dim13, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Tensor3_12_21< A, B, T, U, Dim04, Dim13, Dim2, Dim5, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim5, k, loperator* (const Tensor3_Expr< A, T, Dim04, Dim13, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim13, Dim04, Dim5, j, i, l > &b)
 
template<class A , class B , class T , class U , int Dim15, int Dim24, int Dim0, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Tensor3_23_32< A, B, T, U, Dim15, Dim24, Dim0, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim3, i, joperator* (const Tensor3_Expr< A, T, Dim0, Dim15, Dim24, i, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim24, Dim15, j, l, k > &b)
 
template<class A , class B , class T , class U , int Dim14, int Dim25, int Dim0, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Tensor3_23_23< A, B, T, U, Dim14, Dim25, Dim0, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim3, k, loperator* (const Tensor3_Expr< A, T, Dim0, Dim14, Dim25, k, i, j > &a, const Tensor3_Expr< B, U, Dim3, Dim14, Dim25, l, i, j > &b)
 
template<class A , class B , class T , class U , int Dim03, int Dim14, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Tensor3_12_12< A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim5, k, loperator* (const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim03, Dim14, Dim5, i, j, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim23, int Dim4, int Dim5, char i, char j, char k, char l, char m>
Tensor4_Expr< Tensor3_times_Tensor3_21< A, B, T, U, Dim0, Dim1, Dim23, Dim4, Dim5, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim5, i, j, l, moperator* (const Tensor3_Expr< A, T, Dim0, Dim1, Dim23, i, j, k > &a, const Tensor3_Expr< B, U, Dim23, Dim4, Dim5, k, l, m > &b)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::ostream & Tensor3_ostream_row (std::ostream &os, const FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &t, const int &i, const int &j)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::ostream & Tensor3_ostream_block (std::ostream &os, const FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &t, const int &i)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::istream & Tensor3_istream_row (std::istream &is, FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &t, const int &i, const int &j)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::istream & Tensor3_istream_block (std::istream &is, FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &t, const int &i)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void T3as_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
void T3as_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &result, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
void T3as_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &result, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k>
void T3as_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &result, const Number< 1 > &, const Number< 1 > &, const Number< 2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void T3as_switched_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
void T3as_switched_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &result, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
void T3as_switched_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &result, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< 2 > &)
 
template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k>
void T3as_switched_equals_T3as (A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &result, const Number< 1 > &, const Number< 1 > &, const Number< 2 > &)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Tensor3_antisymmetric_mod_Tensor1< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator% (const Tensor3_antisymmetric_Expr< A, T, Dim, Dim, j, k, l > &a, const Tensor1_Expr< B, U, Dim, i > &b)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Tensor3_antisymmetric_mod_Tensor1< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, loperator% (const Tensor1_Expr< B, U, Dim, i > &b, const Tensor3_antisymmetric_Expr< A, T, Dim, Dim, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Dg_Expr< Tensor3_antisymmetric_or_Tensor3_antisymmetric< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, k, joperator|| (const Tensor3_antisymmetric_Expr< A, T, Dim, Dim, i, j, k > &a, const Tensor3_antisymmetric_Expr< B, U, Dim, Dim, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_plus_Tensor3_antisymmetric< A, B, T, U, Dim0, Dim12, i, j, k >, typename promote< T, U >::V, Dim0, Dim12, i, j, koperator+ (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_plus_Tensor3_antisymmetric_12< A, B, T, U, Dim0, Dim12, i, j, k >, typename promote< T, U >::V, Dim0, Dim12, i, j, koperator+ (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &b)
 
template<class A , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_times_generic< A, T, U, Dim0, Dim12, i, j, k >, typename promote< T, U >::V, Dim0, Dim12, i, j, koperator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const U &d0)
 
template<class A , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_times_generic< A, T, U, Dim0, Dim12, i, j, k >, typename promote< T, U >::V, Dim0, Dim12, i, j, koperator* (const U &d0, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim2 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b, const Number< Current_Dim0 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3as_times_T3_201 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_201 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_201 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim2 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3as_times_T3_201 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b, const Number< Current_Dim0 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V T3as_times_T3_201 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< B, U, Dim12, Dim0, Dim12, k, i, j > &b, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3as_times_T3_120 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_120 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_120 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim2 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3as_times_T3_120 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b, const Number< Current_Dim0 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V T3as_times_T3_120 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< B, U, Dim12, Dim12, Dim0, j, k, i > &b, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3as_times_T3_102 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_102 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_102 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim2 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3as_times_T3_102 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b, const Number< Current_Dim0 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V T3as_times_T3_102 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< B, U, Dim12, Dim0, Dim12, j, i, k > &b, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3as_times_T3_210 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_210 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_210 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim2 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3as_times_T3_210 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b, const Number< Current_Dim0 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V T3as_times_T3_210 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< B, U, Dim12, Dim12, Dim0, k, j, i > &b, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b, const Number< Current_Dim0 > &, const Number< 1 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim2 > &, const Number< Current_Dim2 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b, const Number< Current_Dim0 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V T3as_times_T3_012 (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b, const Number< 1 > &, const Number< 2 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V operator* (const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &b, const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim3_0, int Dim0_1, int Dim1_1, int Dim2_1, int Dim3_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
auto operator- (const Tensor4_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, Dim3_0, i0, j0, k0, l0 > &a, const Tensor4_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, Dim3_1, i1, j1, k1, l1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim3_0, int Dim0_1, int Dim1_1, int Dim2_1, int Dim3_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
auto operator|| (const Tensor4_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, Dim3_0, i0, j0, k0, l0 > &a, const Tensor4_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, Dim3_1, i1, j1, k1, l1 > &b)
 
template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim3_0, int Dim0_1, int Dim1_1, int Dim2_1, int Dim3_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
auto operator+ (const Tensor4_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, Dim3_0, i0, j0, k0, l0 > &a, const Tensor4_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, Dim3_1, i1, j1, k1, l1 > &b)
 
template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3>
void T4_increment (const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &iter, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim1, int Current_Dim2, int Current_Dim3>
void T4_increment (const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &iter, const Number< 1 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim2, int Current_Dim3>
void T4_increment (const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &iter, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)
 
template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim3>
void T4_increment (const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &iter, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< Current_Dim3 > &)
 
template<class T , int Dim0, int Dim1, int Dim2, int Dim3>
void T4_increment (const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &iter, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &, const Number< 1 > &)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Dg_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, i, j, moperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Dg_Expr< B, U, Dim2, Dim4, k, l, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Dg_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, i, j, moperator* (const Dg_Expr< B, U, Dim2, Dim4, k, l, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Dg_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim2, Dim3, Dim4, k, l, moperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Dg_Expr< B, U, Dim2, Dim4, i, j, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Dg_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim2, Dim3, Dim4, k, l, moperator* (const Dg_Expr< B, U, Dim2, Dim4, i, j, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const U &d0)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const U &d0, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator/ (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const U &d0)
 
template<class A , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator/ (const U &d0, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_3< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim2, i, j, koperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim3, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_3< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim2, i, j, koperator* (const Tensor1_Expr< B, U, Dim3, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_2< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim2, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_2< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, loperator* (const Tensor1_Expr< B, U, Dim2, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_1< A, B, T, U, Dim0, Dim2, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, k, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim1, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, loperator* (const Tensor1_Expr< B, U, Dim1, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor1_Expr< B, U, Dim0, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, loperator* (const Tensor1_Expr< B, U, Dim0, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_32< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_32< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_03< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_03< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_30< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_30< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_13< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, i, koperator* (const Tensor2_Expr< B, U, Dim1, Dim3, j, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim4, i, j, k, moperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim4, i, j, k, moperator* (const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim4, i, j, k, moperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim4, i, j, k, moperator* (const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim4, Dim2, Dim3, i, m, k, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim4, Dim2, Dim3, i, m, k, loperator* (const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim4, Dim2, Dim3, i, m, k, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim4, Dim2, Dim3, i, m, k, loperator* (const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_0_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim1, Dim2, Dim3, m, j, k, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_0_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim1, Dim2, Dim3, m, j, k, loperator* (const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_0_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim4, Dim1, Dim2, Dim3, m, j, k, loperator* (const Tensor2_Expr< B, U, Dim4, Dim1, m, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim3, i, j, m, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim3, i, j, m, loperator* (const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim3, i, j, m, loperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim3, i, j, m, loperator* (const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim1, Dim3, j, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim1, Dim3, j, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim1, l, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim3, Dim1, l, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor2_Expr< B, U, Dim4, Dim0, m, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto operator* (const Tensor2_Expr< B, U, Dim4, Dim0, m, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_23< A, B, T, U, Dim0, Dim1, Dim, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, k, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_23< A, B, T, U, Dim0, Dim1, Dim, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor2_symmetric_Expr< B, U, Dim, k, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_32< A, B, T, U, Dim0, Dim1, Dim, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, l, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_32< A, B, T, U, Dim0, Dim1, Dim, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, joperator* (const Tensor2_symmetric_Expr< B, U, Dim, l, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_03< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, l > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_03< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor2_symmetric_Expr< B, U, Dim, i, l > &b, const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_30< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, l, i > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_30< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, koperator* (const Tensor2_symmetric_Expr< B, U, Dim, l, i > &b, const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_02< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, loperator* (const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, k > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_02< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, loperator* (const Tensor2_symmetric_Expr< B, U, Dim, i, k > &b, const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_01< A, B, T, U, Dim, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim3, k, loperator* (const Tensor4_Expr< A, T, Dim, Dim, Dim2, Dim3, i, j, k, l > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b)
 
template<class A , class B , class T , class U , int Dim, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_01< A, B, T, U, Dim, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim3, k, loperator* (const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b, const Tensor4_Expr< A, T, Dim, Dim, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, i, j, moperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim3, Dim4, k, l, m > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, i, j, moperator* (const Tensor3_Expr< B, U, Dim2, Dim3, Dim4, k, l, m > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_12_21< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim3, Dim4, i, l, moperator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim4, Dim2, Dim1, m, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_12_21< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim3, Dim4, i, l, moperator* (const Tensor3_Expr< B, U, Dim4, Dim2, Dim1, m, k, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim3, j, k, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim1, Dim2, Dim3, j, k, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim1, Dim3, Dim2, j, l, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim1, Dim3, Dim2, j, l, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim3, k, j, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim2, Dim1, Dim3, k, j, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim3, Dim1, k, l, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim2, Dim3, Dim1, k, l, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim1, Dim2, l, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim3, Dim1, Dim2, l, j, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim2, Dim1, l, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim3, Dim2, Dim1, l, k, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim3, i, k, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim0, Dim2, Dim3, i, k, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim0, Dim3, Dim2, i, l, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim0, Dim3, Dim2, i, l, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim3, k, i, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim2, Dim0, Dim3, k, i, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim3, Dim0, k, l, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim2, Dim3, Dim0, k, l, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim0, Dim2, l, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim3, Dim0, Dim2, l, i, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim2, Dim0, l, k, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim3, Dim2, Dim0, l, k, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim3, i, j, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim0, Dim1, Dim3, i, j, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim0, Dim3, Dim1, i, l, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim0, Dim3, Dim1, i, l, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim3, j, i, l > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim1, Dim0, Dim3, j, i, l > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim1, Dim3, Dim0, j, l, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim1, Dim3, Dim0, j, l, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim0, Dim1, l, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim3, Dim0, Dim1, l, i, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim3, Dim1, Dim0, l, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim3, Dim1, Dim0, l, j, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto operator* (const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b, const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a)
 
template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, int Dim5, char i, char j, char k, char l, char m, char n>
auto operator* (const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &a, const Tensor4_Expr< B, U, Dim2, Dim3, Dim4, Dim5, k, l, m, n > &b)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3>
std::ostream & Tensor4_0001 (std::ostream &os, const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &t, const int &iterator0, const int &iterator1, const int &iterator2)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3>
std::ostream & Tensor4_0010 (std::ostream &os, const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &t, const int &iterator0, const int &iterator1)
 
template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3>
std::ostream & Tensor4_0100 (std::ostream &os, const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &t, const int &iterator0)
 

Detailed Description

Tensors class implemented by Walter Landry.

JSON compatible output.

The main repository is available under link https://bitbucket.org/wlandry/ftensor. For more details look at reference [35]. See link http://www.wlandry.net/Presentations/FTensor.pdf.

Note this implementation is modified for proposes of MoFEM.

JSON compatible output. It only outputs unique, non-zero elments, so a 3x3 antisymmetric matrix only outputs 3 elements.

JSON compatible output. It only outputs unique elements, so a 3x3 symmetric matrix only outputs 6 elements.

JSON compatible output for numbers. If T is something funky (strings, arrays, etc.) then you are going to have a bad time.

JSON compatible input. It does not validate that separators are actually braces '[' or commas ','. It also ignores errors from missing trailing characters. So you could do something like

Tensor3<double,2,2,2> t3_1; std::stringstream ss(":::3:4:::7:8:::::11:12:::13:14"); ss >> t3_1;

Enumeration Type Documentation

◆ Layout

Enumerator
column_major 
row_major 

Definition at line 10 of file Layout.hpp.

11 {
14 };
@ row_major
Definition: Layout.hpp:13
@ column_major
Definition: Layout.hpp:12

Function Documentation

◆ conj()

template<class A , class T , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< conj_Tensor2< A, T, Dim0, Dim1, i, j >, T, Dim0, Dim1, i, j > FTensor::conj ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a)

◆ cross()

template<class A , class B , class T , class U , char i, char j, char k>
auto FTensor::cross ( const Tensor1_Expr< A, T, 3, i > &  a,
const Tensor1_Expr< B, U, 3, j > &  b,
const Index< k, 3 > &   
)

Definition at line 10 of file cross.hpp.

12 {
13 return a * b * levi_civita(Index<i, 3>(), Index<j, 3>(), Index<k, 3>());
14 }
constexpr double a
constexpr std::enable_if<(Dim0<=2 &&Dim1<=2), Tensor2_Expr< Levi_Civita< T >, T, Dim0, Dim1, i, j > >::type levi_civita(const Index< i, Dim0 > &, const Index< j, Dim1 > &)
levi_civita functions to make for easy adhoc use

◆ d() [1/3]

template<class T , int Dim, char i>
const Tensor1_Expr< const dTensor0< T, Dim, i >, typename promote< T, double >::V, Dim, i > FTensor::d ( const Tensor0< T * > &  a,
const Index< i, Dim >  index,
const Tensor1< int, Dim > &  d_ijk,
const Tensor1< double, Dim > &  d_xyz 
)

Definition at line 27 of file dTensor0.hpp.

29 {
30 using Tensor_Expr = dTensor0<T, Dim, i>;
32 Tensor_Expr(a, d_ijk, d_xyz));
33 }
FTensor::Index< 'i', SPACE_DIM > i

◆ d() [2/3]

template<class T , int Dim0, int Dim1, char i, char j>
const Tensor2_Expr< const dTensor1< T, Dim0, Dim1, i, j >, typename promote< T, double >::V, Dim0, Dim1, i, j > FTensor::d ( const Tensor1< T *, Dim0 > &  a,
const Index< i, Dim0 >  index1,
const Index< j, Dim1 >  index2,
const Tensor1< int, Dim1 > &  d_ijk,
const Tensor1< double, Dim1 > &  d_xyz 
)

Definition at line 60 of file dTensor1.hpp.

63 {
64 using TensorExpr = dTensor1<T, Dim0, Dim1, i, j>;
66 i, j>(TensorExpr(a, d_ijk, d_xyz));
67 }
FTensor::Index< 'j', 3 > j

◆ d() [3/3]

template<class T , int Dim01, int Dim2, char i, char j, char k>
const Dg_Expr< const dTensor2_symmetric< T, Dim01, Dim2, i, j, k >, typename promote< T, double >::V, Dim01, Dim2, i, j, k > FTensor::d ( const Tensor2_symmetric< T *, Dim01 > &  a,
const Index< i, Dim01 >  index1,
const Index< j, Dim01 >  index2,
const Index< k, Dim2 >  index3,
const Tensor1< int, Dim2 > &  d_ijk,
const Tensor1< double, Dim2 > &  d_xyz 
)

Definition at line 31 of file dTensor2_symmetric.hpp.

34 {
37 j, k>(TensorExpr(a, d_ijk, d_xyz));
38 }
FTensor::Index< 'k', 3 > k

◆ d_boundary() [1/2]

template<class T , int Dim, char i>
const Tensor1_Expr< const d_boundary_Tensor0< T, Dim, i >, typename promote< T, double >::V, Dim, i > FTensor::d_boundary ( const Tensor0< T * > &  a,
const Index< i, Dim >  index,
const Tensor1< int, Dim > &  d_ijk,
const Tensor1< double, Dim > &  d_xyz,
const Tensor2< bool, Dim, 2 > &  boundary 
)

Definition at line 35 of file d_boundary_Tensor0.hpp.

38 {
39 using Tensor_Expr = d_boundary_Tensor0<T, Dim, i>;
41 Tensor_Expr(a, d_ijk, d_xyz, boundary));
42 }

◆ d_boundary() [2/2]

template<class T , int Dim01, int Dim2, char i, char j, char k>
const Dg_Expr< const d_boundary_Tensor2_symmetric< T, Dim01, Dim2, i, j, k >, typename promote< T, double >::V, Dim01, Dim2, i, j, k > FTensor::d_boundary ( const Tensor2_symmetric< T *, Dim01 > &  a,
const Index< i, Dim01 >  index1,
const Index< j, Dim01 >  index2,
const Index< k, Dim2 >  index3,
const Tensor1< int, Dim2 > &  d_ijk,
const Tensor1< double, Dim2 > &  d_xyz,
const Tensor2< bool, Dim2, 2 > &  boundary 
)

Definition at line 40 of file d_boundary_Tensor2_symmetric.hpp.

45 {
48 j, k>(TensorExpr(a, d_ijk, d_xyz, boundary));
49 }

◆ d_one_sided() [1/5]

template<class T >
promote< T, double >::V FTensor::d_one_sided ( const Tensor0< T * > &  a,
const Number< 0 >  n1,
const int &  di,
const int &  dj,
const int &  dk,
const double dx,
const double dy,
const double dz 
)

Definition at line 10 of file d_one_sided_Tensor0.hpp.

13 {
14 return (a - *(&a - di)) * dx;
15 }

◆ d_one_sided() [2/5]

template<class T >
promote< T, double >::V FTensor::d_one_sided ( const Tensor0< T * > &  a,
const Number< 1 >  n1,
const int &  di,
const int &  dj,
const int &  dk,
const double dx,
const double dy,
const double dz 
)

Definition at line 19 of file d_one_sided_Tensor0.hpp.

22 {
23 return (a - *(&a - dj)) * dy;
24 }

◆ d_one_sided() [3/5]

template<class T >
promote< T, double >::V FTensor::d_one_sided ( const Tensor0< T * > &  a,
const Number< 2 >  n1,
const int &  di,
const int &  dj,
const int &  dk,
const double dx,
const double dy,
const double dz 
)

Definition at line 28 of file d_one_sided_Tensor0.hpp.

31 {
32 return (a - *(&a - dk)) * dz;
33 }

◆ d_one_sided() [4/5]

template<class T , int Dim, char i, int axis>
const Tensor1_Expr< const d_one_sided_Tensor1< T, Dim, i, axis >, typename promote< T, double >::V, Dim, i > FTensor::d_one_sided ( const Tensor1< T *, Dim > &  a,
const Number< axis >  n1,
const Index< i, Dim >  index1,
const int &  di,
const int &  dj,
const int &  dk,
const double dx,
const double dy,
const double dz 
)

Definition at line 31 of file d_one_sided_Tensor1.hpp.

35 {
36 using TensorExpr = d_one_sided_Tensor1<T, Dim, i, axis>;
38 TensorExpr(a, di, dj, dk, dx, dy, dz));
39 }

◆ d_one_sided() [5/5]

template<class T , int Dim, char i, char j, int axis>
const Tensor2_symmetric_Expr< const d_one_sided_Tensor2_symmetric< T, Dim, i, j, axis >, typename promote< T, double >::V, Dim, i, j > FTensor::d_one_sided ( const Tensor2_symmetric< T *, Dim > &  a,
const Number< axis >  n1,
const Index< i, Dim >  index1,
const Index< j, Dim >  index2,
const int &  di,
const int &  dj,
const int &  dk,
const double dx,
const double dy,
const double dz 
)

◆ dd() [1/3]

template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr< const ddTensor0< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, j > FTensor::dd ( const Tensor0< T * > &  a,
const Index< i, Dim >  index1,
const Index< j, Dim >  index2,
const Tensor1< int, Dim > &  d_ijk,
const Tensor1< double, Dim > &  d_xyz 
)

Definition at line 33 of file ddTensor0.hpp.

36 {
37 using Tensor_Expr = ddTensor0<T, Dim, i, j>;
39 Dim, i, j>(Tensor_Expr(a, d_ijk, d_xyz));
40 }

◆ dd() [2/3]

template<class T , int Dim0, int Dim12, char i, char j, char k>
const Dg_Expr< const ddTensor1< T, Dim0, Dim12, i, j, k >, typename promote< T, double >::V, Dim0, Dim12, i, j, k > FTensor::dd ( const Tensor1< T *, Dim0 > &  a,
const Index< k, Dim0 >  index0,
const Index< i, Dim12 >  index1,
const Index< j, Dim12 >  index2,
const Tensor1< int, Dim12 > &  d_ijk,
const Tensor1< double, Dim12 > &  d_xyz 
)

Definition at line 43 of file ddTensor1.hpp.

46 {
47 using TensorExpr = ddTensor1<T, Dim0, Dim12, i, j, k>;
49 j, k>(TensorExpr(a, d_ijk, d_xyz));
50 }

◆ dd() [3/3]

template<class T , int Dim01, int Dim23, char i, char j, char k, char l>
const Ddg_Expr< const ddTensor2_symmetric< T, Dim01, Dim23, i, j, k, l >, typename promote< T, double >::V, Dim01, Dim23, i, j, k, l > FTensor::dd ( const Tensor2_symmetric< T *, Dim01 > &  a,
const Index< i, Dim01 >  index1,
const Index< j, Dim01 >  index2,
const Index< k, Dim23 >  index3,
const Index< l, Dim23 >  index4,
const Tensor1< int, Dim23 > &  d_ijk,
const Tensor1< double, Dim23 > &  d_xyz 
)

Definition at line 38 of file ddTensor2_symmetric.hpp.

42 {
45 i, j, k, l>(Tensor_Expr(a, d_ijk, d_xyz));
46 }
FTensor::Index< 'l', 3 > l

◆ dd_boundary() [1/2]

template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr< const dd_boundary_Tensor0< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, j > FTensor::dd_boundary ( const Tensor0< T * > &  a,
const Index< i, Dim >  index3,
const Index< j, Dim >  index4,
const Tensor1< int, Dim > &  d_ijk,
const Tensor1< double, Dim > &  d_xyz,
const Tensor2< bool, Dim, 2 > &  boundary 
)

Definition at line 81 of file dd_boundary_Tensor0.hpp.

85 {
86 using Tensor_Expr = dd_boundary_Tensor0<T, Dim, i, j>;
88 Dim, i, j>(
89 Tensor_Expr(a, d_ijk, d_xyz, boundary));
90 }

◆ dd_boundary() [2/2]

template<class T , int Dim01, int Dim23, char i, char j, char k, char l>
const Ddg_Expr< const dd_boundary_Tensor2_symmetric< T, Dim01, Dim23, i, j, k, l >, typename promote< T, double >::V, Dim01, Dim23, i, j, k, l > FTensor::dd_boundary ( const Tensor2_symmetric< T *, Dim01 > &  a,
const Index< i, Dim01 >  index1,
const Index< j, Dim01 >  index2,
const Index< k, Dim23 >  index3,
const Index< l, Dim23 >  index4,
const Tensor1< int, Dim23 > &  d_ijk,
const Tensor1< double, Dim23 > &  d_xyz,
const Tensor2< bool, Dim23, 2 > &  boundary 
)

Definition at line 100 of file dd_boundary_Tensor2_symmetric.hpp.

106 {
107 using Tensor_Expr
110 i, j, k, l>(Tensor_Expr(a, d_ijk, d_xyz, boundary));
111 }

◆ DECLARE_PROMOTE() [1/18]

FTensor::DECLARE_PROMOTE ( adouble  ,
double  ,
adouble   
)

◆ DECLARE_PROMOTE() [2/18]

FTensor::DECLARE_PROMOTE ( adouble  ,
int  ,
adouble   
)

◆ DECLARE_PROMOTE() [3/18]

FTensor::DECLARE_PROMOTE ( adtl::adouble  ,
double  ,
adtl::adouble   
)

◆ DECLARE_PROMOTE() [4/18]

FTensor::DECLARE_PROMOTE ( adtl::adouble  ,
int  ,
adtl::adouble   
)

◆ DECLARE_PROMOTE() [5/18]

FTensor::DECLARE_PROMOTE ( adub  ,
double  ,
adub   
)

◆ DECLARE_PROMOTE() [6/18]

FTensor::DECLARE_PROMOTE ( adub  ,
int  ,
adub   
)

◆ DECLARE_PROMOTE() [7/18]

FTensor::DECLARE_PROMOTE ( double  ,
adouble  ,
adouble   
)

◆ DECLARE_PROMOTE() [8/18]

FTensor::DECLARE_PROMOTE ( double  ,
adtl::adouble  ,
adtl::adouble   
)

◆ DECLARE_PROMOTE() [9/18]

FTensor::DECLARE_PROMOTE ( double  ,
adub  ,
adub   
)

◆ DECLARE_PROMOTE() [10/18]

FTensor::DECLARE_PROMOTE ( double  ,
int  ,
double   
)

◆ DECLARE_PROMOTE() [11/18]

FTensor::DECLARE_PROMOTE ( double  ,
std::complex< double ,
std::complex< double  
)

◆ DECLARE_PROMOTE() [12/18]

FTensor::DECLARE_PROMOTE ( int  ,
adouble  ,
adouble   
)

◆ DECLARE_PROMOTE() [13/18]

FTensor::DECLARE_PROMOTE ( int  ,
adtl::adouble  ,
adtl::adouble   
)

◆ DECLARE_PROMOTE() [14/18]

FTensor::DECLARE_PROMOTE ( int  ,
adub  ,
adub   
)

◆ DECLARE_PROMOTE() [15/18]

FTensor::DECLARE_PROMOTE ( int  ,
double  ,
double   
)

◆ DECLARE_PROMOTE() [16/18]

FTensor::DECLARE_PROMOTE ( int  ,
std::complex< double ,
std::complex< double  
)

◆ DECLARE_PROMOTE() [17/18]

FTensor::DECLARE_PROMOTE ( std::complex< double ,
double  ,
std::complex< double  
)

◆ DECLARE_PROMOTE() [18/18]

FTensor::DECLARE_PROMOTE ( std::complex< double ,
int  ,
std::complex< double  
)

◆ diffusion() [1/3]

template<class T >
promote< T, double >::V FTensor::diffusion ( const Tensor0< T * > &  a,
const int &  di,
const int &  dj,
const int &  dk,
const double dx 
)

Definition at line 10 of file diffusion_Tensor0.hpp.

12 {
13 return ((*(&a + di) - 2 * a + *(&a - di))
14 + (*(&a + dj) - 2 * a + *(&a - dj))
15 + (*(&a + dk) - 2 * a + *(&a - dk))
16 + ((*(&a + di + dj) + *(&a + di - dj) + *(&a - di + dj)
17 + *(&a - di - dj) - 4 * a)
18 + (*(&a + di + dk) + *(&a + di - dk) + *(&a - di + dk)
19 + *(&a - di - dk) - 4 * a)
20 + (*(&a + dj + dk) + *(&a + dj - dk) + *(&a - dj + dk)
21 + *(&a - dj - dk) - 4 * a))
22 / (std::sqrt(2.0)))
23 * dx * dx;
24 }

◆ diffusion() [2/3]

template<class T , int Dim, char i>
const Tensor1_Expr< const diffusion_Tensor1< T, Dim, i >, typename promote< T, double >::V, Dim, i > FTensor::diffusion ( const Tensor1< T *, Dim > &  a,
const Index< i, Dim >  index1,
const int &  di,
const int &  dj,
const int &  dk,
const double dx 
)

Definition at line 41 of file diffusion_Tensor1.hpp.

43 {
44 using Tensor_Expr = diffusion_Tensor1<T, Dim, i>;
46 Tensor_Expr(a, di, dj, dk, dx));
47 }

◆ diffusion() [3/3]

template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr< const diffusion_Tensor2_symmetric< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, j > FTensor::diffusion ( const Tensor2_symmetric< T *, Dim > &  a,
const Index< i, Dim >  index1,
const Index< j, Dim >  index2,
const int &  di,
const int &  dj,
const int &  dk,
const double dx 
)

◆ error_when_instantiated()

template<typename T >
constexpr bool FTensor::error_when_instantiated ( )
constexpr

Definition at line 7 of file error_when_instantiated.hpp.

8 {
9 return false;
10 }

◆ interpolate() [1/3]

template<class T >
promote< T, double >::V FTensor::interpolate ( const Tensor0< T * > &  a,
const int &  di,
const int &  dj,
const int &  dk,
const int &  i0,
const int &  j0,
const int &  k0,
const double  distance[3],
const double  conjugate[3] 
)

Definition at line 13 of file interpolate_Tensor0.hpp.

16 {
17 return conjugate[0] * conjugate[1] * conjugate[2]
18 * (*(&a + di * i0 + dj * j0 + dk * k0))
19 + distance[0] * conjugate[1] * conjugate[2]
20 * (*(&a + di * (i0 + 1) + dj * (j0) + dk * (k0)))
21 + conjugate[0] * distance[1] * conjugate[2]
22 * (*(&a + di * (i0) + dj * (j0 + 1) + dk * (k0)))
23 + distance[0] * distance[1] * conjugate[2]
24 * (*(&a + di * (i0 + 1) + dj * (j0 + 1) + dk * (k0)))
25 + conjugate[0] * conjugate[1] * distance[2]
26 * (*(&a + di * (i0) + dj * (j0) + dk * (k0 + 1)))
27 + distance[0] * conjugate[1] * distance[2]
28 * (*(&a + di * (i0 + 1) + dj * (j0) + dk * (k0 + 1)))
29 + conjugate[0] * distance[1] * distance[2]
30 * (*(&a + di * (i0) + dj * (j0 + 1) + dk * (k0 + 1)))
31 + distance[0] * distance[1] * distance[2]
32 * (*(&a + di * (i0 + 1) + dj * (j0 + 1) + dk * (k0 + 1)));
33 }

◆ interpolate() [2/3]

template<class T , int Dim, char i>
const Tensor1_Expr< const interpolate_Tensor1< T, Dim, i >, typename promote< T, double >::V, Dim, i > FTensor::interpolate ( const Tensor1< T *, Dim > &  a,
const Index< i, Dim >  index1,
const int &  di,
const int &  dj,
const int &  dk,
const int &  i0,
const int &  j0,
const int &  k0,
const double  distance[3],
const double  conjugate[3] 
)

Definition at line 49 of file interpolate_Tensor1.hpp.

53 {
54 using Tensor_Expr = interpolate_Tensor1<T, Dim, i>;
56 Tensor_Expr(a, di, dj, dk, i0, j0, k0, distance, conjugate));
57 }

◆ interpolate() [3/3]

template<class T , int Dim, char i, char j>
const Tensor2_symmetric_Expr< const interpolate_Tensor2_symmetric< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, j > FTensor::interpolate ( const Tensor2_symmetric< T *, Dim > &  a,
const Index< i, Dim >  index1,
const Index< j, Dim >  index2,
const int &  di,
const int &  dj,
const int &  dk,
const int &  i0,
const int &  j0,
const int &  k0,
const double  distance[3],
const double  conjugate[3] 
)

Definition at line 55 of file interpolate_Tensor2_symmetric.hpp.

59 {
62 Dim, i, j>(
63 Tensor_Expr(a, di, dj, dk, i0, j0, k0, distance, conjugate));
64 }

◆ kronecker_delta() [1/3]

template<class T = int, char i, char j, int Dim0, int Dim1>
Tensor2_Expr< Kronecker_Delta< T >, T, Dim0, Dim1, i, j > FTensor::kronecker_delta ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &   
)

Rank 2.

Definition at line 81 of file Kronecker_Delta.hpp.

81 {
83}
Kronecker Delta class.

◆ kronecker_delta() [2/3]

template<class T = int, char i, int Dim0>
constexpr auto FTensor::kronecker_delta ( const Index< i, Dim0 > &  ,
const int &  N1 
)
constexpr

Definition at line 86 of file Kronecker_Delta.hpp.

86 {
88}
static Number< 1 > N1

◆ kronecker_delta() [3/3]

template<class T = int, char j, int Dim1>
constexpr auto FTensor::kronecker_delta ( const int &  N0,
const Index< j, Dim1 > &   
)
constexpr

Definition at line 91 of file Kronecker_Delta.hpp.

91 {
93}
static Number< 0 > N0

◆ kronecker_delta_symmetric() [1/3]

template<class T = int, char i, char j, int Dim>
Tensor2_symmetric_Expr< Kronecker_Delta_symmetric< T >, T, Dim, i, j > FTensor::kronecker_delta_symmetric ( const Index< i, Dim > &  ,
const Index< j, Dim > &   
)

Definition at line 97 of file Kronecker_Delta.hpp.

97 {
99}
Kronecker Delta class symmetric.

◆ kronecker_delta_symmetric() [2/3]

template<class T = int, char i, int Dim0>
constexpr auto FTensor::kronecker_delta_symmetric ( const Index< i, Dim0 > &  ,
const int &  N1 
)
constexpr

Definition at line 102 of file Kronecker_Delta.hpp.

103 {
105}

◆ kronecker_delta_symmetric() [3/3]

template<class T = int, char j, int Dim1>
constexpr auto FTensor::kronecker_delta_symmetric ( const int &  N0,
const Index< j, Dim1 > &   
)
constexpr

Definition at line 108 of file Kronecker_Delta.hpp.

109 {
111}

◆ levi_civita() [1/25]

template<class T = int, char i, char j, int Dim0, int Dim1>
constexpr std::enable_if<(Dim0<=2 &&Dim1<=2), Tensor2_Expr< Levi_Civita< T >, T, Dim0, Dim1, i, j > >::type FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &   
)
constexpr

levi_civita functions to make for easy adhoc use

Normally, this should go in is own file levi_civita.hpp, but not all filesystems can handle files that differ only in case :( Rank 2

Definition at line 617 of file Levi_Civita.hpp.

618 {
620 }
Levi_Civita Classes.
Definition: Levi_Civita.hpp:11

◆ levi_civita() [2/25]

template<class T = int, char i, char j, char k, int Dim0, int Dim1, int Dim2>
constexpr std::enable_if<(Dim0<=3 &&Dim1<=3 &&Dim2<=3), Tensor3_Expr< Levi_Civita< T >, T, Dim0, Dim1, Dim2, i, j, k > >::type FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &  ,
const Index< k, Dim2 > &   
)
constexpr

Rank 3.

Definition at line 639 of file Levi_Civita.hpp.

641 {
644 }

◆ levi_civita() [3/25]

template<class T = int, char i, char j, char k, char l, int Dim0, int Dim1, int Dim2, int Dim3>
constexpr std::enable_if<(Dim0<=4 &&Dim1<=4 &&Dim2<=4 &&Dim3<=4), Tensor4_Expr< Levi_Civita< T >, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > >::type FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &  ,
const Index< k, Dim2 > &  ,
const Index< l, Dim3 > &   
)
constexpr

Rank 4.

Definition at line 694 of file Levi_Civita.hpp.

696 {
699 }

◆ levi_civita() [4/25]

template<class T = int, char i, char j, char k, int Dim0, int Dim1, int Dim2>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &  ,
const Index< k, Dim2 > &  ,
const int &  N3 
)
constexpr

Definition at line 702 of file Levi_Civita.hpp.

704 {
706 Index<k, Dim2>(), N3);
707 }

◆ levi_civita() [5/25]

template<class T = int, char i, char j, int Dim0, int Dim1>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &  ,
const int &  N2 
)
constexpr

Definition at line 648 of file Levi_Civita.hpp.

649 {
651 }
static Number< 2 > N2

◆ levi_civita() [6/25]

template<class T = int, char i, char j, char l, int Dim0, int Dim1, int Dim3>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &  ,
const int &  N2,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 710 of file Levi_Civita.hpp.

712 {
715 }

◆ levi_civita() [7/25]

template<class T = int, char i, char j, int Dim0, int Dim1>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const Index< j, Dim1 > &  ,
const int &  N2,
const int &  N3 
)
constexpr

Definition at line 734 of file Levi_Civita.hpp.

736 {
738 }

◆ levi_civita() [8/25]

template<class T = int, char i, int Dim0>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1 
)
constexpr

Definition at line 623 of file Levi_Civita.hpp.

624 {
625 return Levi_Civita<T>()(Index<i, Dim0>(), N1);
626 }

◆ levi_civita() [9/25]

template<class T = int, char i, char k, int Dim0, int Dim2>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1,
const Index< k, Dim2 > &   
)
constexpr

Definition at line 655 of file Levi_Civita.hpp.

656 {
658 }

◆ levi_civita() [10/25]

template<class T = int, char i, char k, char l, int Dim0, int Dim2, int Dim3>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1,
const Index< k, Dim2 > &  ,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 718 of file Levi_Civita.hpp.

720 {
723 }

◆ levi_civita() [11/25]

template<class T = int, char i, char k, int Dim0, int Dim2>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1,
const Index< k, Dim2 > &  ,
const int &  N3 
)
constexpr

Definition at line 741 of file Levi_Civita.hpp.

743 {
745 }

◆ levi_civita() [12/25]

template<class T = int, char i, int Dim0>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1,
const int &  N2 
)
constexpr

Definition at line 669 of file Levi_Civita.hpp.

670 {
671 return Levi_Civita<T>()(Index<i, Dim0>(), N1, N2);
672 }

◆ levi_civita() [13/25]

template<class T = int, char i, char l, int Dim0, int Dim3>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1,
const int &  N2,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 755 of file Levi_Civita.hpp.

757 {
759 }

◆ levi_civita() [14/25]

template<class T = int, char i, int Dim0>
constexpr auto FTensor::levi_civita ( const Index< i, Dim0 > &  ,
const int &  N1,
const int &  N2,
const int &  N3 
)
constexpr

Definition at line 776 of file Levi_Civita.hpp.

778 {
779 return Levi_Civita<T>()(Index<i, Dim0>(), N1, N2, N3);
780 }

◆ levi_civita() [15/25]

template<class T = int, char j, int Dim1>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &   
)
constexpr

Definition at line 629 of file Levi_Civita.hpp.

630 {
631 return Levi_Civita<T>()(N0, Index<j, Dim1>());
632 }

◆ levi_civita() [16/25]

template<class T = int, char j, char k, int Dim1, int Dim2>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &  ,
const Index< k, Dim2 > &   
)
constexpr

Definition at line 662 of file Levi_Civita.hpp.

663 {
665 }

◆ levi_civita() [17/25]

template<class T = int, char j, char k, char l, int Dim1, int Dim2, int Dim3>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &  ,
const Index< k, Dim2 > &  ,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 726 of file Levi_Civita.hpp.

728 {
731 }

◆ levi_civita() [18/25]

template<class T = int, char j, char k, int Dim1, int Dim2>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &  ,
const Index< k, Dim2 > &  ,
const int &  N3 
)
constexpr

Definition at line 748 of file Levi_Civita.hpp.

750 {
752 }

◆ levi_civita() [19/25]

template<class T = int, char j, int Dim1>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &  ,
const int &  N2 
)
constexpr

Definition at line 676 of file Levi_Civita.hpp.

677 {
678 return Levi_Civita<T>()(N0, Index<j, Dim1>(), N2);
679 }

◆ levi_civita() [20/25]

template<class T = int, char j, char l, int Dim1, int Dim3>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &  ,
const int &  N2,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 762 of file Levi_Civita.hpp.

764 {
766 }

◆ levi_civita() [21/25]

template<class T = int, char j, int Dim1>
constexpr auto FTensor::levi_civita ( const int &  N0,
const Index< j, Dim1 > &  ,
const int &  N2,
const int &  N3 
)
constexpr

Definition at line 783 of file Levi_Civita.hpp.

785 {
786 return Levi_Civita<T>()(N0, Index<j, Dim1>(), N2, N3);
787 }

◆ levi_civita() [22/25]

template<class T = int, char k, int Dim2>
constexpr auto FTensor::levi_civita ( const int &  N0,
const int &  N1,
const Index< k, Dim2 > &   
)
constexpr

Definition at line 683 of file Levi_Civita.hpp.

684 {
685 return Levi_Civita<T>()(N0, N1, Index<k, Dim2>());
686 }

◆ levi_civita() [23/25]

template<class T = int, char k, char l, int Dim2, int Dim3>
constexpr auto FTensor::levi_civita ( const int &  N0,
const int &  N1,
const Index< k, Dim2 > &  ,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 769 of file Levi_Civita.hpp.

771 {
773 }

◆ levi_civita() [24/25]

template<class T = int, char k, int Dim2>
constexpr auto FTensor::levi_civita ( const int &  N0,
const int &  N1,
const Index< k, Dim2 > &  ,
const int &  N3 
)
constexpr

Definition at line 790 of file Levi_Civita.hpp.

792 {
793 return Levi_Civita<T>()(N0, N1, Index<k, Dim2>(), N3);
794 }

◆ levi_civita() [25/25]

template<class T = int, char l, int Dim3>
constexpr auto FTensor::levi_civita ( const int &  N0,
const int &  N1,
const int &  N2,
const Index< l, Dim3 > &   
)
constexpr

Definition at line 797 of file Levi_Civita.hpp.

799 {
800 return Levi_Civita<T>()(N0, N1, N2, Index<l, Dim3>());
801 }

◆ operator%() [1/6]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Ddg_mod_Ddg< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, l > FTensor::operator% ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &  b 
)

Definition at line 33 of file Ddg_mod_Ddg.hpp.

◆ operator%() [2/6]

template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr< Ddg_mod_Tensor2_symmetric< A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > FTensor::operator% ( const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 69 of file Ddg_mod_Tensor2_symmetric.hpp.

71 {
72 using TensorExpr
73 = Ddg_mod_Tensor2_symmetric<A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0,
74 k0, l0, i1, j1>;
75 static_assert(
76 !std::is_empty<TensorExpr>::value,
77 "Indexes or Dimensions are not compatible with the % operator");
79 i0, j0, k0, l0>(TensorExpr(a, b));
80 }
const double T
constexpr AssemblyType A

◆ operator%() [3/6]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Tensor3_antisymmetric_mod_Tensor1< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, l > FTensor::operator% ( const Tensor1_Expr< B, U, Dim, i > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim, Dim, j, k, l > &  a 
)

◆ operator%() [4/6]

template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_symmetric_mod_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, i0, j0 > FTensor::operator% ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 63 of file Tensor2_symmetric_mod_Tensor2_symmetric.hpp.

65 {
66 using TensorExpr
67 = Tensor2_symmetric_mod_Tensor2_symmetric<A, B, T, U, Dim_0, Dim_1, i0,
68 j0, i1, j1>;
69 static_assert(!std::is_empty<TensorExpr>::value,
70 "Index or Dimensions are not compatible with % operator");
72 i0, j0>(TensorExpr(a, b));
73 }

◆ operator%() [5/6]

template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr< Ddg_mod_Tensor2_symmetric< A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > FTensor::operator% ( const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b,
const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &  a 
)

Definition at line 89 of file Ddg_mod_Tensor2_symmetric.hpp.

91 {
92 using TensorExpr
93 = Ddg_mod_Tensor2_symmetric<A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0,
94 k0, l0, i1, j1>;
95 static_assert(
96 !std::is_empty<TensorExpr>::value,
97 "Indexes or Dimensions are not compatible with the % operator");
99 i0, j0, k0, l0>(TensorExpr(a, b));
100 }

◆ operator%() [6/6]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Tensor3_antisymmetric_mod_Tensor1< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, l > FTensor::operator% ( const Tensor3_antisymmetric_Expr< A, T, Dim, Dim, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b 
)

Definition at line 35 of file Tensor3_antisymmetric_mod_Tensor1.hpp.

37 {
38 using TensorExpr
41 TensorExpr(a, b));
42 }

◆ operator&() [1/10]

template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr< Ddg_and_Tensor2_symmetric< A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > FTensor::operator& ( const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 69 of file Ddg_and_Tensor2_symmetric.hpp.

71 {
72 using TensorExpr
73 = Ddg_and_Tensor2_symmetric<A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0,
74 k0, l0, i1, j1>;
75 static_assert(
76 !std::is_empty<TensorExpr>::value,
77 "Indexes or Dimensions are not compatible with the & operator");
79 i0, j0, k0, l0>(TensorExpr(a, b));
80 }

◆ operator&() [2/10]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_and_Tensor1< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, k > FTensor::operator& ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor1_Expr< B, U, Dim2, k > &  b 
)

Definition at line 34 of file Dg_and_Tensor1.hpp.

36 {
38 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
39 TensorExpr(a, b));
40 }

◆ operator&() [3/10]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_and_Tensor2_symmetric< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, k > FTensor::operator& ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  b 
)

Definition at line 34 of file Dg_and_Tensor2_symmetric.hpp.

◆ operator&() [4/10]

template<class A , class B , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_and_Tensor1< A, B, T, U, Dim, i >, typename promote< T, U >::V, Dim, i > FTensor::operator& ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b 
)

Definition at line 29 of file Tensor1_and_Tensor1.hpp.

◆ operator&() [5/10]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, char i0, char j0, char i1>
auto FTensor::operator& ( const Tensor1_Expr< B, U, Dim0_1, i1 > &  b,
const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a 
)

Definition at line 82 of file Tensor2_and_Tensor1.hpp.

◆ operator&() [6/10]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_and_Tensor1< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, k > FTensor::operator& ( const Tensor1_Expr< B, U, Dim2, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 48 of file Dg_and_Tensor1.hpp.

50 {
52 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
53 TensorExpr(a, b));
54 }

◆ operator&() [7/10]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, char i0, char j0, char i1>
auto FTensor::operator& ( const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a,
const Tensor1_Expr< B, U, Dim0_1, i1 > &  b 
)

Definition at line 62 of file Tensor2_and_Tensor1.hpp.

64 {
65 using TensorExpr
67 static_assert(
68 !std::is_empty<TensorExpr>::value,
69 "Indexes or Dimensions are not compatible with the & operator");
71 i0, j0>(TensorExpr(a, b));
72 }

◆ operator&() [8/10]

template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_symmetric_and_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, i0, j0 > FTensor::operator& ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 63 of file Tensor2_symmetric_and_Tensor2_symmetric.hpp.

65 {
66 using TensorExpr
67 = Tensor2_symmetric_and_Tensor2_symmetric<A, B, T, U, Dim_0, Dim_1, i0,
68 j0, i1, j1>;
69 static_assert(
70 !std::is_empty<TensorExpr>::value,
71 "Indexes or Dimensions are not compatible with the & operator");
73 i0, j0>(TensorExpr(a, b));
74 }

◆ operator&() [9/10]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_and_Tensor2_symmetric< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, k > FTensor::operator& ( const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 49 of file Dg_and_Tensor2_symmetric.hpp.

51 {
52 using TensorExpr
54 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
55 TensorExpr(a, b));
56 }

◆ operator&() [10/10]

template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim_1, char i0, char j0, char k0, char l0, char i1, char j1>
Ddg_Expr< Ddg_and_Tensor2_symmetric< A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0, k0, l0, i1, j1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > FTensor::operator& ( const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b,
const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &  a 
)

Definition at line 89 of file Ddg_and_Tensor2_symmetric.hpp.

91 {
92 using TensorExpr
93 = Ddg_and_Tensor2_symmetric<A, B, T, U, Dim01_0, Dim23_0, Dim_1, i0, j0,
94 k0, l0, i1, j1>;
95 static_assert(
96 !std::is_empty<TensorExpr>::value,
97 "Indexes or Dimensions are not compatible with the & operator");
99 i0, j0, k0, l0>(TensorExpr(a, b));
100 }

◆ operator&&() [1/4]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Ddg_and_Ddg0321< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, l > FTensor::operator&& ( const Ddg_Expr< A, T, Dim, Dim, i, k, j, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &  b 
)

Definition at line 33 of file Ddg_and_Ddg.hpp.

35 {
38 TensorExpr(a, b));
39 }

◆ operator&&() [2/4]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Ddg_and_Ddg0213< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, l > FTensor::operator&& ( const Ddg_Expr< A, T, Dim, Dim, i, k, l, j > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &  b 
)

Definition at line 67 of file Ddg_and_Ddg.hpp.

69 {
72 TensorExpr(a, b));
73 }

◆ operator&&() [3/4]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_antisymmetric_Expr< Dg_and_Dg_12< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, j, k > FTensor::operator&& ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim, i, k, j > &  b 
)

◆ operator&&() [4/4]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_antisymmetric_Expr< Dg_and_Dg_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, j, i, k > FTensor::operator&& ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim, k, j, i > &  b 
)

Definition at line 67 of file Dg_and_Dg.hpp.

69 {
72 Dim, Dim, j, i, k>(TensorExpr(a, b));
73 }

◆ operator*() [1/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V FTensor::operator* ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b 
)

Definition at line 79 of file Ddg_times_Ddg.hpp.

80 {
83}
promote< T, U >::V T4ddg_times_T4ddg_0213(const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)

◆ operator*() [2/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_Expr< Ddg_times_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, k > FTensor::operator* ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b 
)

◆ operator*() [3/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Dg_Expr< B, U, Dim01, Dim4, i, j, m > &  b 
)
inline

Definition at line 115 of file Ddg_times_Dg.hpp.

116 {
117 using TensorExpr =
119 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim23, Dim4, k, l, m>(
120 TensorExpr(a, b));
121}
FTensor::Index< 'm', SPACE_DIM > m

◆ operator*() [4/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Dg_Expr< B, U, Dim23, Dim4, k, l, m > &  b 
)
inline

Definition at line 54 of file Ddg_times_Dg.hpp.

55 {
56 using TensorExpr =
58 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim4, i, j, m>(
59 TensorExpr(a, b));
60}

◆ operator*() [5/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_0< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, j, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim01, i > &  b 
)

Definition at line 147 of file Ddg_times_Tensor1.hpp.

148 {
150 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, j, k, l>(
151 TensorExpr(a, b));
152}

◆ operator*() [6/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_1< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim01, j > &  b 
)

Definition at line 200 of file Ddg_times_Tensor1.hpp.

201 {
203 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, k, l>(
204 TensorExpr(a, b));
205}

◆ operator*() [7/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_2< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim23, k > &  b 
)

Definition at line 41 of file Ddg_times_Tensor1.hpp.

◆ operator*() [8/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_3< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, k > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim23, l > &  b 
)

Definition at line 94 of file Ddg_times_Tensor1.hpp.

◆ operator*() [9/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &  b 
)

Definition at line 199 of file Ddg_times_Tensor2.hpp.

◆ operator*() [10/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_0< A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim01, Dim23, Dim23, m, j, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim1, i, m > &  b 
)
inline

Definition at line 776 of file Ddg_times_Tensor2.hpp.

778 {
779 typedef const Ddg_times_Tensor2_0_0<A, B, T, U, Dim01, Dim23, Dim1, i, j,
780 k, l, m>
781 TensorExpr;
783 Dim23, Dim23, m, j, k, l>(TensorExpr(a, b));
784 }

◆ operator*() [11/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_1< A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim01, Dim23, Dim23, m, j, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim1, m, i > &  b 
)
inline

Definition at line 843 of file Ddg_times_Tensor2.hpp.

845 {
846 typedef const Ddg_times_Tensor2_0_1<A, B, T, U, Dim01, Dim23, Dim1, i, j,
847 k, l, m>
848 TensorExpr;
850 Dim23, Dim1, m, j, k, l>(TensorExpr(a, b));
851 }

◆ operator*() [12/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_0< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim2, Dim23, Dim23, i, m, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim2, j, m > &  b 
)
inline

Definition at line 642 of file Ddg_times_Tensor2.hpp.

644 {
645 typedef const Ddg_times_Tensor2_1_0<A, B, T, U, Dim01, Dim23, Dim2, i, j,
646 k, l, m>
647 TensorExpr;
649 Dim23, Dim2, i, m, k, l>(TensorExpr(a, b));
650 }

◆ operator*() [13/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_1< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim2, Dim23, Dim23, i, m, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim2, m, j > &  b 
)
inline

Definition at line 709 of file Ddg_times_Tensor2.hpp.

711 {
712 typedef const Ddg_times_Tensor2_1_1<A, B, T, U, Dim01, Dim23, Dim2, i, j,
713 k, l, m>
714 TensorExpr;
716 Dim23, Dim23, i, m, k, l>(TensorExpr(a, b));
717 }

◆ operator*() [14/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_Expr< Ddg_times_Tensor2_13< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, k > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim23, j, l > &  b 
)

Definition at line 302 of file Ddg_times_Tensor2.hpp.

◆ operator*() [15/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_23< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, j > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim23, Dim23, k, l > &  b 
)

◆ operator*() [16/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_32< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, j > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim23, Dim23, l, k > &  b 
)

Definition at line 132 of file Ddg_times_Tensor2.hpp.

◆ operator*() [17/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_1< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, k, m > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim23, Dim4, l, m > &  b 
)
inline

Definition at line 374 of file Ddg_times_Tensor2.hpp.

376 {
377 typedef const Ddg_times_Tensor2_3_1<A, B, T, U, Dim01, Dim23, Dim4, i, j,
378 k, l, m>
379 TensorExpr;
381 Dim23, Dim4, i, j, k, m>(TensorExpr(a, b));
382 }

◆ operator*() [18/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_1< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, m, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim23, k, m > &  b 
)
inline

Definition at line 575 of file Ddg_times_Tensor2.hpp.

577 {
578 typedef const Ddg_times_Tensor2_2_1<A, B, T, U, Dim01, Dim23, Dim4, i, j,
579 k, l, m>
580 TensorExpr;
582 Dim23, Dim4, i, j, m, l>(TensorExpr(a, b));
583 }

◆ operator*() [19/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_0< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, m, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim23, m, k > &  b 
)
inline

Definition at line 508 of file Ddg_times_Tensor2.hpp.

510 {
511 typedef const Ddg_times_Tensor2_2_0<A, B, T, U, Dim01, Dim23, Dim4, i, j,
512 k, l, m>
513 TensorExpr;
515 Dim23, Dim4, i, j, m, l>(TensorExpr(a, b));
516 }

◆ operator*() [20/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_0< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, k, m > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim23, m, l > &  b 
)
inline

Definition at line 441 of file Ddg_times_Tensor2.hpp.

443 {
444 typedef const Ddg_times_Tensor2_3_0<A, B, T, U, Dim01, Dim23, Dim4, i, j,
445 k, l, m>
446 TensorExpr;
448 Dim23, Dim4, i, j, k, m>(TensorExpr(a, b));
449 }

◆ operator*() [21/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  b 
)

◆ operator*() [22/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_23< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, j > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim23, k, l > &  b 
)

◆ operator*() [23/391]

template<class A , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
auto FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const U &  d0 
)

Definition at line 11 of file Ddg_times_generic.hpp.

12 {
13 auto TensorExpr
14 = [&a, &d0](const int N1, const int N2, const int N3, const int N4) {
15 return a(N1, N2, N3, N4) * d0;
16 };
17 return Ddg_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim01,
18 Dim23, i, j, k, l>(TensorExpr);
19 }

◆ operator*() [24/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, int Dim3, char i, char j, char k, char l, char m, char n>
Tensor4_Expr< Ddg_times_Tensor4_2301_ijkl< A, B, T, U, Dim01, Dim23, Dim2, Dim3, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim01, Dim2, Dim3, i, j, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, m, n > &  a,
const Tensor4_Expr< B, U, Dim23, Dim23, Dim2, Dim3, m, n, k, l > &  b 
)

Definition at line 57 of file Ddg_times_Tensor4.hpp.

58 {
59 using TensorExpr = Ddg_times_Tensor4_2301_ijkl<A, B, T, U, Dim01, Dim23, Dim2,
60 Dim3, i, j, k, l, m, n>;
62 Dim3, i, j, k, l>(TensorExpr(a, b));
63}
FTensor::Index< 'n', SPACE_DIM > n

◆ operator*() [25/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, j, i, k, l > &  a,
const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &  b 
)

Definition at line 229 of file Ddg_times_Tensor2.hpp.

230 {
231 using TensorExpr =
234 k, l>(TensorExpr(a, b));
235 }

◆ operator*() [26/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim0, int Dim1, char i, char j, char k, char l, char m, char n>
Tensor4_Expr< Ddg_times_Tensor4_2323_klij< A, B, T, U, Dim01, Dim23, Dim0, Dim1, i, j, k, l, m, n >, typename promote< T, U >::V, Dim0, Dim1, Dim23, Dim23, i, j, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim23, m, n, k, l > &  a,
const Tensor4_Expr< B, U, Dim0, Dim1, Dim23, Dim23, i, j, m, n > &  b 
)

Definition at line 131 of file Ddg_times_Tensor4.hpp.

132 {
133 using TensorExpr = Ddg_times_Tensor4_2323_klij<A, B, T, U, Dim01, Dim23, Dim0,
134 Dim1, i, j, k, l, m, n>;
136 Dim23, i, j, k, l>(TensorExpr(a, b));
137}

◆ operator*() [27/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
Ddg_Expr< Ddg_times_Ddg_2323< A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim23, i, j, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim45, i, j, m, n > &  a,
const Ddg_Expr< B, U, Dim23, Dim45, k, l, m, n > &  b 
)

Definition at line 305 of file Ddg_times_Ddg.hpp.

306 {
307 using TensorExpr =
309 return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, k,
310 l>(TensorExpr(a, b));
311}

◆ operator*() [28/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
Ddg_Expr< Ddg_times_Ddg_2301< A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim23, i, j, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim01, Dim45, i, j, m, n > &  a,
const Ddg_Expr< B, U, Dim45, Dim23, m, n, k, l > &  b 
)

Definition at line 189 of file Ddg_times_Ddg.hpp.

190 {
191 using TensorExpr =
193 return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, k,
194 l>(TensorExpr(a, b));
195}

◆ operator*() [29/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
Ddg_Expr< Ddg_times_Ddg_0123< A, B, T, U, Dim01, Dim23, Dim45, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim23, i, j, k, l > FTensor::operator* ( const Ddg_Expr< A, T, Dim45, Dim01, m, n, i, j > &  a,
const Ddg_Expr< B, U, Dim23, Dim45, k, l, m, n > &  b 
)

Definition at line 247 of file Ddg_times_Ddg.hpp.

248 {
249 using TensorExpr =
251 return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, k,
252 l>(TensorExpr(a, b));
253}

◆ operator*() [30/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim45, char i, char j, char k, char l, char m, char n>
auto FTensor::operator* ( const Ddg_Expr< A, T, Dim45, Dim01, m, n, i, j > &  a,
const Ddg_Expr< B, U, Dim45, Dim23, m, n, k, l > &  b 
)
inline

Definition at line 132 of file Ddg_times_Ddg.hpp.

133 {
134 using TensorExpr =
136 return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, k,
137 l>(TensorExpr(a, b));
138}

◆ operator*() [31/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V FTensor::operator* ( const Ddg_Expr< B, U, Dim, Dim, i, j, k, l > &  b,
const Riemann_Expr< A, T, Dim, i, j, k, l > &  a 
)

Definition at line 40 of file Riemann_times_Ddg.hpp.

43 {
44 return operator*(a, b);
45 }
promote< T, U >::V operator*(const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &a, const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &b)

◆ operator*() [32/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V FTensor::operator* ( const Ddg_Expr< B, U, Dim, Dim, i, j, k, l > &  b,
const Riemann_Expr< A, T, Dim, i, k, j, l > &  a 
)

Definition at line 78 of file Riemann_times_Ddg.hpp.

81 {
82 return operator*(a, b);
83 }

◆ operator*() [33/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_12< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

◆ operator*() [34/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_21< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, k, j > &  b 
)

◆ operator*() [35/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const Dg_Expr< A, T, Dim, Dim, j, i, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

◆ operator*() [36/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_20< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const Dg_Expr< A, T, Dim, Dim, k, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

◆ operator*() [37/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Dg_times_Dg_12_01< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, l > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim01, i, j, k > &  a,
const Dg_Expr< B, U, Dim01, Dim2, j, k, l > &  b 
)

Definition at line 56 of file Dg_times_Dg.hpp.

◆ operator*() [38/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim01, Dim3, i, j, l > &  b 
)

Definition at line 187 of file Dg_times_Dg.hpp.

188 {
189 using TensorExpr =
192 l>(TensorExpr(a, b));
193 }

◆ operator*() [39/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Dg_times_Dg_12_20< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, l > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim2, Dim01, k, l, j > &  b 
)

Definition at line 126 of file Dg_times_Dg.hpp.

128 {
131 l>(TensorExpr(a, b));
132 }

◆ operator*() [40/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
Ddg_Expr< Dg_times_Dg_2< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim23, i, j, l, m > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim23, Dim2, l, m, k > &  b 
)

Definition at line 234 of file Dg_times_Dg.hpp.

236 {
237 using TensorExpr
240 l, m>(TensorExpr(a, b));
241 }

◆ operator*() [41/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_symmetric_Expr< Dg_times_Tensor1_2< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i, j > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor1_Expr< B, U, Dim2, k > &  b 
)

◆ operator*() [42/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_12< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &  b 
)

Definition at line 302 of file Dg_times_Tensor2.hpp.

◆ operator*() [43/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_1_0< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim3, i, k, l > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim01, Dim3, j, l > &  b 
)

Definition at line 171 of file Dg_times_Tensor2.hpp.

◆ operator*() [44/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_21< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim2, Dim01, k, j > &  b 
)

Definition at line 369 of file Dg_times_Tensor2.hpp.

◆ operator*() [45/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_0< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim3, i, j, l > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b 
)

Definition at line 47 of file Dg_times_Tensor2.hpp.

◆ operator*() [46/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_1_1< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim3, i, k, l > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim3, Dim01, l, j > &  b 
)

Definition at line 233 of file Dg_times_Tensor2.hpp.

235 {
236 using TensorExpr
239 Dim3, i, k, l>(TensorExpr(a, b));
240 }

◆ operator*() [47/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_1< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim3, i, j, l > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b 
)

Definition at line 109 of file Dg_times_Tensor2.hpp.

111 {
112 using TensorExpr
114 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim3, i, j, l>(
115 TensorExpr(a, b));
116 }

◆ operator*() [48/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_0< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim01, i, k, l > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim01, j, l > &  b 
)

◆ operator*() [49/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_1< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim01, i, k, l > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim01, l, j > &  b 
)

◆ operator*() [50/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_symmetric_0< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, j, l > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim2, k, l > &  b 
)

◆ operator*() [51/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_symmetric_1< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, j, l > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim2, l, k > &  b 
)

◆ operator*() [52/391]

template<class A , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_times_generic< A, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, k > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const U &  d0 
)

Definition at line 32 of file Dg_times_generic.hpp.

33 {
35 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
36 TensorExpr(a, d0));
37 }

◆ operator*() [53/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr< Dg_times_Tensor1_1< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, i, k, j > &  a,
const Tensor1_Expr< B, U, Dim01, k > &  b 
)

Definition at line 105 of file Dg_times_Tensor1.hpp.

107 {
110 j>(TensorExpr(a, b));
111 }

◆ operator*() [54/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_02< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, j, i, k > &  a,
const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &  b 
)

Definition at line 436 of file Dg_times_Tensor2.hpp.

◆ operator*() [55/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_01< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, i > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a,
const Tensor2_Expr< B, U, Dim01, Dim01, j, k > &  b 
)

Definition at line 570 of file Dg_times_Tensor2.hpp.

◆ operator*() [56/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, i > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a,
const Tensor2_Expr< B, U, Dim01, Dim01, k, j > &  b 
)

Definition at line 637 of file Dg_times_Tensor2.hpp.

◆ operator*() [57/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_01< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, i > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a,
const Tensor2_symmetric_Expr< B, U, Dim01, j, k > &  b 
)

◆ operator*() [58/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, i > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a,
const Tensor2_symmetric_Expr< B, U, Dim01, k, j > &  b 
)

◆ operator*() [59/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr< Dg_times_Tensor1_0< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &  a,
const Tensor1_Expr< B, U, Dim01, k > &  b 
)

Definition at line 164 of file Dg_times_Tensor1.hpp.

166 {
169 j>(TensorExpr(a, b));
170 }

◆ operator*() [60/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_20< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i > FTensor::operator* ( const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &  a,
const Tensor2_Expr< B, U, Dim2, Dim01, j, k > &  b 
)

Definition at line 503 of file Dg_times_Tensor2.hpp.

◆ operator*() [61/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Dg_times_Dg_12_01< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, l > FTensor::operator* ( const Dg_Expr< B, U, Dim01, Dim2, j, k, l > &  b,
const Dg_Expr< A, T, Dim01, Dim01, i, j, k > &  a 
)

Definition at line 70 of file Dg_times_Dg.hpp.

72 {
75 l>(TensorExpr(a, b));
76 }

◆ operator*() [62/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Dg_Expr< B, U, Dim01, Dim4, i, j, m > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 127 of file Ddg_times_Dg.hpp.

128 {
129 using TensorExpr =
131 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim23, Dim4, k, l, m>(
132 TensorExpr(a, b));
133}

◆ operator*() [63/391]

template<class A , class B , class T , class U , int Dim03, int Dim14, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Dg_12_12< A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim5, k, l > FTensor::operator* ( const Dg_Expr< B, U, Dim03, Dim5, i, j, l > &  b,
const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &  a 
)

Definition at line 570 of file Tensor3_times_Dg.hpp.

571 {
572 using TensorExpr = Tensor3_times_Dg_12_12<A, B, T, U, Dim03, Dim14, Dim2,
573 Dim5, i, j, k, l>;
575 l>(TensorExpr(a, b));
576 };

◆ operator*() [64/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Dg_times_Dg_12_20< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, l > FTensor::operator* ( const Dg_Expr< B, U, Dim2, Dim01, k, l, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 140 of file Dg_times_Dg.hpp.

142 {
145 l>(TensorExpr(a, b));
146 }

◆ operator*() [65/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Dg_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim2, Dim3, Dim4, k, l, m > FTensor::operator* ( const Dg_Expr< B, U, Dim2, Dim4, i, j, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 143 of file Tensor4_times_Dg_double.hpp.

144 {
145 typedef const Tensor4_times_Dg_01<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i,
146 j, k, l, m>
147 TensorExpr;
149 k, l, m>(TensorExpr(a, b));
150}

◆ operator*() [66/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Dg_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, i, j, m > FTensor::operator* ( const Dg_Expr< B, U, Dim2, Dim4, k, l, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 71 of file Tensor4_times_Dg_double.hpp.

72 {
73 typedef const Tensor4_times_Dg_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i,
74 j, k, l, m>
75 TensorExpr;
77 i, j, m>(TensorExpr(a, b));
78}

◆ operator*() [67/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Dg_Expr< B, U, Dim23, Dim4, k, l, m > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 66 of file Ddg_times_Dg.hpp.

67 {
68 using TensorExpr =
70 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim4, i, j, m>(
71 TensorExpr(a, b));
72}

◆ operator*() [68/391]

template<class A , class B , char i, char j, char k, char l>
double FTensor::operator* ( const Riemann_Expr< A, i, j, k, l > &  a,
const Tensor4_Expr< B, i, j, k, l > &  b 
)

Definition at line 12 of file Riemann_times_Tensor4.hpp.

14 {
15 return a(1, 0, 0, 1) * b(1, 0, 0, 1) + a(2, 0, 0, 1) * b(2, 0, 0, 1)
16 + a(0, 1, 0, 1) * b(0, 1, 0, 1) + a(2, 1, 0, 1) * b(2, 1, 0, 1)
17 + a(0, 2, 0, 1) * b(0, 2, 0, 1) + a(1, 2, 0, 1) * b(1, 2, 0, 1)
18 + a(1, 0, 0, 2) * b(1, 0, 0, 2) + a(2, 0, 0, 2) * b(2, 0, 0, 2)
19 + a(0, 1, 0, 2) * b(0, 1, 0, 2) + a(2, 1, 0, 2) * b(2, 1, 0, 2)
20 + a(0, 2, 0, 2) * b(0, 2, 0, 2) + a(1, 2, 0, 2) * b(1, 2, 0, 2)
21 + a(1, 0, 1, 0) * b(1, 0, 1, 0) + a(2, 0, 1, 0) * b(2, 0, 1, 0)
22 + a(0, 1, 1, 0) * b(0, 1, 1, 0) + a(2, 1, 1, 0) * b(2, 1, 1, 0)
23 + a(0, 2, 1, 0) * b(0, 2, 1, 0) + a(1, 2, 1, 0) * b(1, 2, 1, 0)
24 + a(1, 0, 1, 2) * b(1, 0, 1, 2) + a(2, 0, 1, 2) * b(2, 0, 1, 2)
25 + a(0, 1, 1, 2) * b(0, 1, 1, 2) + a(2, 1, 1, 2) * b(2, 1, 1, 2)
26 + a(0, 2, 1, 2) * b(0, 2, 1, 2) + a(1, 2, 1, 2) * b(1, 2, 1, 2)
27 + a(1, 0, 2, 0) * b(1, 0, 2, 0) + a(2, 0, 2, 0) * b(2, 0, 2, 0)
28 + a(0, 1, 2, 0) * b(0, 1, 2, 0) + a(2, 1, 2, 0) * b(2, 1, 2, 0)
29 + a(0, 2, 2, 0) * b(0, 2, 2, 0) + a(1, 2, 2, 0) * b(1, 2, 2, 0)
30 + a(1, 0, 2, 1) * b(1, 0, 2, 1) + a(2, 0, 2, 1) * b(2, 0, 2, 1)
31 + a(0, 1, 2, 1) * b(0, 1, 2, 1) + a(2, 1, 2, 1) * b(2, 1, 2, 1)
32 + a(0, 2, 2, 1) * b(0, 2, 2, 1) + a(1, 2, 2, 1) * b(1, 2, 2, 1);
33
34 // return a(0,0,0,0)*b(0,0,0,0) + a(1,0,0,0)*b(1,0,0,0) +
35 // a(2,0,0,0)*b(2,0,0,0)
36 // + a(0,1,0,0)*b(0,1,0,0) + a(1,1,0,0)*b(1,1,0,0) +
37 // a(2,1,0,0)*b(2,1,0,0)
38 // + a(0,2,0,0)*b(0,2,0,0) + a(1,2,0,0)*b(1,2,0,0) +
39 // a(2,2,0,0)*b(2,2,0,0)
40 // + a(0,0,0,1)*b(0,0,0,1) + a(1,0,0,1)*b(1,0,0,1) +
41 // a(2,0,0,1)*b(2,0,0,1)
42 // + a(0,1,0,1)*b(0,1,0,1) + a(1,1,0,1)*b(1,1,0,1) +
43 // a(2,1,0,1)*b(2,1,0,1)
44 // + a(0,2,0,1)*b(0,2,0,1) + a(1,2,0,1)*b(1,2,0,1) +
45 // a(2,2,0,1)*b(2,2,0,1)
46 // + a(0,0,0,2)*b(0,0,0,2) + a(1,0,0,2)*b(1,0,0,2) +
47 // a(2,0,0,2)*b(2,0,0,2)
48 // + a(0,1,0,2)*b(0,1,0,2) + a(1,1,0,2)*b(1,1,0,2) +
49 // a(2,1,0,2)*b(2,1,0,2)
50 // + a(0,2,0,2)*b(0,2,0,2) + a(1,2,0,2)*b(1,2,0,2) +
51 // a(2,2,0,2)*b(2,2,0,2)
52 // + a(0,0,1,0)*b(0,0,1,0) + a(1,0,1,0)*b(1,0,1,0) +
53 // a(2,0,1,0)*b(2,0,1,0)
54 // + a(0,1,1,0)*b(0,1,1,0) + a(1,1,1,0)*b(1,1,1,0) +
55 // a(2,1,1,0)*b(2,1,1,0)
56 // + a(0,2,1,0)*b(0,2,1,0) + a(1,2,1,0)*b(1,2,1,0) +
57 // a(2,2,1,0)*b(2,2,1,0)
58 // + a(0,0,1,1)*b(0,0,1,1) + a(1,0,1,1)*b(1,0,1,1) +
59 // a(2,0,1,1)*b(2,0,1,1)
60 // + a(0,1,1,1)*b(0,1,1,1) + a(1,1,1,1)*b(1,1,1,1) +
61 // a(2,1,1,1)*b(2,1,1,1)
62 // + a(0,2,1,1)*b(0,2,1,1) + a(1,2,1,1)*b(1,2,1,1) +
63 // a(2,2,1,1)*b(2,2,1,1)
64 // + a(0,0,1,2)*b(0,0,1,2) + a(1,0,1,2)*b(1,0,1,2) +
65 // a(2,0,1,2)*b(2,0,1,2)
66 // + a(0,1,1,2)*b(0,1,1,2) + a(1,1,1,2)*b(1,1,1,2) +
67 // a(2,1,1,2)*b(2,1,1,2)
68 // + a(0,2,1,2)*b(0,2,1,2) + a(1,2,1,2)*b(1,2,1,2) +
69 // a(2,2,1,2)*b(2,2,1,2)
70 // + a(0,0,2,0)*b(0,0,2,0) + a(1,0,2,0)*b(1,0,2,0) +
71 // a(2,0,2,0)*b(2,0,2,0)
72 // + a(0,1,2,0)*b(0,1,2,0) + a(1,1,2,0)*b(1,1,2,0) +
73 // a(2,1,2,0)*b(2,1,2,0)
74 // + a(0,2,2,0)*b(0,2,2,0) + a(1,2,2,0)*b(1,2,2,0) +
75 // a(2,2,2,0)*b(2,2,2,0)
76 // + a(0,0,2,1)*b(0,0,2,1) + a(1,0,2,1)*b(1,0,2,1) +
77 // a(2,0,2,1)*b(2,0,2,1)
78 // + a(0,1,2,1)*b(0,1,2,1) + a(1,1,2,1)*b(1,1,2,1) +
79 // a(2,1,2,1)*b(2,1,2,1)
80 // + a(0,2,2,1)*b(0,2,2,1) + a(1,2,2,1)*b(1,2,2,1) +
81 // a(2,2,2,1)*b(2,2,2,1)
82 // + a(0,0,2,2)*b(0,0,2,2) + a(1,0,2,2)*b(1,0,2,2) +
83 // a(2,0,2,2)*b(2,0,2,2)
84 // + a(0,1,2,2)*b(0,1,2,2) + a(1,1,2,2)*b(1,1,2,2) +
85 // a(2,1,2,2)*b(2,1,2,2)
86 // + a(0,2,2,2)*b(0,2,2,2) + a(1,2,2,2)*b(1,2,2,2) +
87 // a(2,2,2,2)*b(2,2,2,2);
88 }

◆ operator*() [69/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, j, k, l > &  b 
)

Definition at line 14 of file Riemann_times_Ddg.hpp.

16 {
17 return a(1, 0, 0, 1) * b(1, 0, 0, 1) + a(2, 0, 0, 1) * b(2, 0, 0, 1)
18 + a(0, 1, 0, 1) * b(0, 1, 0, 1) + a(2, 1, 0, 1) * b(2, 1, 0, 1)
19 + a(0, 2, 0, 1) * b(0, 2, 0, 1) + a(1, 2, 0, 1) * b(1, 2, 0, 1)
20 + a(1, 0, 0, 2) * b(1, 0, 0, 2) + a(2, 0, 0, 2) * b(2, 0, 0, 2)
21 + a(0, 1, 0, 2) * b(0, 1, 0, 2) + a(2, 1, 0, 2) * b(2, 1, 0, 2)
22 + a(0, 2, 0, 2) * b(0, 2, 0, 2) + a(1, 2, 0, 2) * b(1, 2, 0, 2)
23 + a(1, 0, 1, 0) * b(1, 0, 1, 0) + a(2, 0, 1, 0) * b(2, 0, 1, 0)
24 + a(0, 1, 1, 0) * b(0, 1, 1, 0) + a(2, 1, 1, 0) * b(2, 1, 1, 0)
25 + a(0, 2, 1, 0) * b(0, 2, 1, 0) + a(1, 2, 1, 0) * b(1, 2, 1, 0)
26 + a(1, 0, 1, 2) * b(1, 0, 1, 2) + a(2, 0, 1, 2) * b(2, 0, 1, 2)
27 + a(0, 1, 1, 2) * b(0, 1, 1, 2) + a(2, 1, 1, 2) * b(2, 1, 1, 2)
28 + a(0, 2, 1, 2) * b(0, 2, 1, 2) + a(1, 2, 1, 2) * b(1, 2, 1, 2)
29 + a(1, 0, 2, 0) * b(1, 0, 2, 0) + a(2, 0, 2, 0) * b(2, 0, 2, 0)
30 + a(0, 1, 2, 0) * b(0, 1, 2, 0) + a(2, 1, 2, 0) * b(2, 1, 2, 0)
31 + a(0, 2, 2, 0) * b(0, 2, 2, 0) + a(1, 2, 2, 0) * b(1, 2, 2, 0)
32 + a(1, 0, 2, 1) * b(1, 0, 2, 1) + a(2, 0, 2, 1) * b(2, 0, 2, 1)
33 + a(0, 1, 2, 1) * b(0, 1, 2, 1) + a(2, 1, 2, 1) * b(2, 1, 2, 1)
34 + a(0, 2, 2, 1) * b(0, 2, 2, 1) + a(1, 2, 2, 1) * b(1, 2, 2, 1);
35 }

◆ operator*() [70/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b 
)

Definition at line 52 of file Riemann_times_Ddg.hpp.

54 {
55 return a(1, 0, 0, 1) * b(1, 0, 0, 1) + a(2, 0, 0, 1) * b(2, 0, 0, 1)
56 + a(0, 1, 0, 1) * b(0, 0, 1, 1) + a(2, 1, 0, 1) * b(2, 0, 1, 1)
57 + a(0, 2, 0, 1) * b(0, 0, 2, 1) + a(1, 2, 0, 1) * b(1, 0, 2, 1)
58 + a(1, 0, 0, 2) * b(1, 0, 0, 2) + a(2, 0, 0, 2) * b(2, 0, 0, 2)
59 + a(0, 1, 0, 2) * b(0, 0, 1, 2) + a(2, 1, 0, 2) * b(2, 0, 1, 2)
60 + a(0, 2, 0, 2) * b(0, 0, 2, 2) + a(1, 2, 0, 2) * b(1, 0, 2, 2)
61 + a(1, 0, 1, 0) * b(1, 1, 0, 0) + a(2, 0, 1, 0) * b(2, 1, 0, 0)
62 + a(0, 1, 1, 0) * b(0, 1, 1, 0) + a(2, 1, 1, 0) * b(2, 1, 1, 0)
63 + a(0, 2, 1, 0) * b(0, 1, 2, 0) + a(1, 2, 1, 0) * b(1, 1, 2, 0)
64 + a(1, 0, 1, 2) * b(1, 1, 0, 2) + a(2, 0, 1, 2) * b(2, 1, 0, 2)
65 + a(0, 1, 1, 2) * b(0, 1, 1, 2) + a(2, 1, 1, 2) * b(2, 1, 1, 2)
66 + a(0, 2, 1, 2) * b(0, 1, 2, 2) + a(1, 2, 1, 2) * b(1, 1, 2, 2)
67 + a(1, 0, 2, 0) * b(1, 2, 0, 0) + a(2, 0, 2, 0) * b(2, 2, 0, 0)
68 + a(0, 1, 2, 0) * b(0, 2, 1, 0) + a(2, 1, 2, 0) * b(2, 2, 1, 0)
69 + a(0, 2, 2, 0) * b(0, 2, 2, 0) + a(1, 2, 2, 0) * b(1, 2, 2, 0)
70 + a(1, 0, 2, 1) * b(1, 2, 0, 1) + a(2, 0, 2, 1) * b(2, 2, 0, 1)
71 + a(0, 1, 2, 1) * b(0, 2, 1, 1) + a(2, 1, 2, 1) * b(2, 2, 1, 1)
72 + a(0, 2, 2, 1) * b(0, 2, 2, 1) + a(1, 2, 2, 1) * b(1, 2, 2, 1);
73 }

◆ operator*() [71/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_0< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, j, k, l > FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b 
)

◆ operator*() [72/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_1< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, k, l > FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim, j > &  b 
)

◆ operator*() [73/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_2< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, l > FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim, k > &  b 
)

◆ operator*() [74/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_3< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, k > FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim, l > &  b 
)

◆ operator*() [75/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Riemann_times_Tensor2_symmetric_0< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, j, l > FTensor::operator* ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, k > &  b 
)

◆ operator*() [76/391]

template<class A , class B , class T , class U , int Dim, char i>
promote< T, U >::V FTensor::operator* ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b 
)

Definition at line 29 of file Tensor1_times_Tensor1.hpp.

31 {
32 return T1_times_T1(a, b, Number<Dim>());
33 }
promote< T, U >::V T1_times_T1(const Tensor1_Expr< A, T, Dim, i > &a, const Tensor1_Expr< B, U, Dim, i > &b, const Number< Current_Dim > &)

◆ operator*() [77/391]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_times_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const Tensor1_Expr< A, T, Dim, i > &  a,
const U &  d0 
)

Definition at line 32 of file Tensor1_times_generic.hpp.

◆ operator*() [78/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< Tensor1_times_Tensor1< A, B, T, U, Dim0, Dim1, i, j >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator* ( const Tensor1_Expr< A, T, Dim0, i > &  a,
const Tensor1_Expr< B, U, Dim1, j > &  b 
)

Definition at line 59 of file Tensor1_times_Tensor1.hpp.

◆ operator*() [79/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_0< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, j, k, l > FTensor::operator* ( const Tensor1_Expr< B, U, Dim, i > &  b,
const Riemann_Expr< A, T, Dim, i, j, k, l > &  a 
)

Definition at line 50 of file Riemann_times_Tensor1.hpp.

52 {
55 Dim, Dim, j, k, l>(TensorExpr(a, b));
56 }

◆ operator*() [80/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_1< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, k, l > FTensor::operator* ( const Tensor1_Expr< B, U, Dim, j > &  b,
const Riemann_Expr< A, T, Dim, i, j, k, l > &  a 
)

Definition at line 100 of file Riemann_times_Tensor1.hpp.

102 {
105 Dim, Dim, i, k, l>(TensorExpr(a, b));
106 }

◆ operator*() [81/391]

template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr< Tensor2_symmetric_times_Tensor1_1< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const Tensor1_Expr< B, U, Dim, j > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

◆ operator*() [82/391]

template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr< Tensor2_symmetric_times_Tensor1_0< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const Tensor1_Expr< B, U, Dim, j > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a 
)

◆ operator*() [83/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_2< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, l > FTensor::operator* ( const Tensor1_Expr< B, U, Dim, k > &  b,
const Riemann_Expr< A, T, Dim, i, j, k, l > &  a 
)

Definition at line 150 of file Riemann_times_Tensor1.hpp.

152 {
155 Dim, Dim, i, j, l>(TensorExpr(a, b));
156 }

◆ operator*() [84/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor3_antisymmetric_Expr< Riemann_times_Tensor1_3< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, k > FTensor::operator* ( const Tensor1_Expr< B, U, Dim, l > &  b,
const Riemann_Expr< A, T, Dim, i, j, k, l > &  a 
)

Definition at line 200 of file Riemann_times_Tensor1.hpp.

202 {
205 Dim, Dim, i, j, k>(TensorExpr(a, b));
206 }

◆ operator*() [85/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto FTensor::operator* ( const Tensor1_Expr< B, U, Dim0, i > &  b,
const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a 
)

Definition at line 73 of file Tensor2_times_Tensor1.hpp.

75 {
76 return a * b;
77 }

◆ operator*() [86/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_0< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim1, Dim2, j, k > FTensor::operator* ( const Tensor1_Expr< B, U, Dim0, i > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 122 of file Tensor3_times_Tensor1.hpp.

◆ operator*() [87/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, l > FTensor::operator* ( const Tensor1_Expr< B, U, Dim0, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 269 of file Tensor4_times_Tensor1.hpp.

271 {
272 typedef const Tensor4_times_Tensor1_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
273 i, j, k, l>
274 TensorExpr;
276 Dim3, j, k, l>(TensorExpr(a, b));
277 }

◆ operator*() [88/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_0< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, j, k, l > FTensor::operator* ( const Tensor1_Expr< B, U, Dim01, i > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 160 of file Ddg_times_Tensor1.hpp.

161 {
163 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, j, k, l>(
164 TensorExpr(a, b));
165}

◆ operator*() [89/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_1< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, k, l > FTensor::operator* ( const Tensor1_Expr< B, U, Dim01, j > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 213 of file Ddg_times_Tensor1.hpp.

214 {
216 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, k, l>(
217 TensorExpr(a, b));
218}

◆ operator*() [90/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr< Dg_times_Tensor1_1< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j > FTensor::operator* ( const Tensor1_Expr< B, U, Dim01, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, k, j > &  a 
)

Definition at line 119 of file Dg_times_Tensor1.hpp.

121 {
124 j>(TensorExpr(a, b));
125 }

◆ operator*() [91/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_Expr< Dg_times_Tensor1_0< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j > FTensor::operator* ( const Tensor1_Expr< B, U, Dim01, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &  a 
)

Definition at line 178 of file Dg_times_Tensor1.hpp.

180 {
183 j>(TensorExpr(a, b));
184 }

◆ operator*() [92/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto FTensor::operator* ( const Tensor1_Expr< B, U, Dim1, j > &  b,
const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a 
)

Definition at line 51 of file Tensor2_times_Tensor1.hpp.

53 {
54 return a * b;
55 }

◆ operator*() [93/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_1< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, k > FTensor::operator* ( const Tensor1_Expr< B, U, Dim1, j > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

◆ operator*() [94/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, l > FTensor::operator* ( const Tensor1_Expr< B, U, Dim1, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 201 of file Tensor4_times_Tensor1.hpp.

203 {
204 typedef const Tensor4_times_Tensor1_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
205 i, j, k, l>
206 TensorExpr;
208 Dim3, i, k, l>(TensorExpr(a, b));
209 }

◆ operator*() [95/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor2_symmetric_Expr< Dg_times_Tensor1_2< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i, j > FTensor::operator* ( const Tensor1_Expr< B, U, Dim2, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 60 of file Dg_times_Tensor1.hpp.

62 {
65 i, j>(TensorExpr(a, b));
66 }

◆ operator*() [96/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor3_Expr< Tensor2_times_Tensor1< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim1, Dim2, i, j, k > FTensor::operator* ( const Tensor1_Expr< B, U, Dim2, k > &  b,
const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a 
)

Definition at line 119 of file Tensor2_times_Tensor1.hpp.

121 {
122 using TensorExpr
125 Dim2, i, j, k>(TensorExpr(a, b));
126 }

◆ operator*() [97/391]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
Dg_Expr< Tensor2_symmetric_times_Tensor1< A, B, T, U, Dim, Dim2, i, j, k >, typename promote< T, U >::V, Dim, Dim2, i, j, k > FTensor::operator* ( const Tensor1_Expr< B, U, Dim2, k > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

◆ operator*() [98/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_2< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator* ( const Tensor1_Expr< B, U, Dim2, k > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 184 of file Tensor3_times_Tensor1.hpp.

◆ operator*() [99/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_2< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, l > FTensor::operator* ( const Tensor1_Expr< B, U, Dim2, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 133 of file Tensor4_times_Tensor1.hpp.

135 {
136 typedef const Tensor4_times_Tensor1_2<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
137 i, j, k, l>
138 TensorExpr;
140 Dim3, i, j, l>(TensorExpr(a, b));
141 }

◆ operator*() [100/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_2< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, l > FTensor::operator* ( const Tensor1_Expr< B, U, Dim23, k > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 54 of file Ddg_times_Tensor1.hpp.

55 {
57 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, l>(
58 TensorExpr(a, b));
59}

◆ operator*() [101/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Dg_Expr< Ddg_times_Tensor1_3< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, k > FTensor::operator* ( const Tensor1_Expr< B, U, Dim23, l > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 107 of file Ddg_times_Tensor1.hpp.

108 {
110 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim23, i, j, k>(
111 TensorExpr(a, b));
112}

◆ operator*() [102/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_3< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim2, i, j, k > FTensor::operator* ( const Tensor1_Expr< B, U, Dim3, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 65 of file Tensor4_times_Tensor1.hpp.

67 {
68 typedef const Tensor4_times_Tensor1_3<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
69 i, j, k, l>
70 TensorExpr;
72 Dim2, i, j, k>(TensorExpr(a, b));
73 }

◆ operator*() [103/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor1_Expr< B, U, Dim0, i > &  b 
)

Definition at line 60 of file Tensor2_times_Tensor1.hpp.

62 {
63 using TensorExpr
64 = Tensor2_times_Tensor1_single<A, B, T, U, Dim0, Dim1, Dim0, i, j, i,
65 Dim1, Dim0, j, i>;
67 TensorExpr(a, b));
68 }

◆ operator*() [104/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
auto FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor1_Expr< B, U, Dim1, j > &  b 
)

Definition at line 38 of file Tensor2_times_Tensor1.hpp.

40 {
41 using TensorExpr
42 = Tensor2_times_Tensor1_single<A, B, T, U, Dim0, Dim1, Dim1, i, j, j,
43 Dim0, Dim1, i, j>;
45 TensorExpr(a, b));
46 }

◆ operator*() [105/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor3_Expr< Tensor2_times_Tensor1< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim1, Dim2, i, j, k > FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor1_Expr< B, U, Dim2, k > &  b 
)

Definition at line 104 of file Tensor2_times_Tensor1.hpp.

106 {
107 using TensorExpr
110 Dim2, i, j, k>(TensorExpr(a, b));
111 }

◆ operator*() [106/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote< T, U >::V FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b 
)

Definition at line 52 of file Tensor2_times_Tensor2.hpp.

54 {
55 return T2_times_T2(a, b, Number<Dim0>(), Number<Dim1>());
56 }
promote< T, U >::V T2_times_T2(const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ operator*() [107/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote< T, U >::V FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b 
)

Definition at line 99 of file Tensor2_times_Tensor2.hpp.

101 {
103 }
promote< T, U >::V T2_times_switched_T2(const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &a, const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ operator*() [108/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor2_times_Tensor2_10< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, k > FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b 
)

Definition at line 147 of file Tensor2_times_Tensor2.hpp.

◆ operator*() [109/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor2_times_Tensor2_11< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, k > FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b 
)

Definition at line 193 of file Tensor2_times_Tensor2.hpp.

◆ operator*() [110/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor4_Expr< Tensor2_times_Tensor2< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim3, i, j, k, l > FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b 
)

Definition at line 320 of file Tensor2_times_Tensor2.hpp.

322 {
323 using TensorExpr
326 Dim2, Dim3, i, j, k, l>(TensorExpr(a, b));
327 }

◆ operator*() [111/391]

template<class A , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< Tensor2_times_generic< A, T, U, Dim0, Dim1, i, j >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator* ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const U &  d0 
)

Definition at line 28 of file Tensor2_times_generic.hpp.

◆ operator*() [112/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor2_times_Tensor2_00< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, k > FTensor::operator* ( const Tensor2_Expr< A, T, Dim1, Dim0, j, i > &  a,
const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b 
)

Definition at line 239 of file Tensor2_times_Tensor2.hpp.

◆ operator*() [113/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor2_times_Tensor2_01< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, k > FTensor::operator* ( const Tensor2_Expr< A, T, Dim1, Dim0, j, i > &  a,
const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b 
)

Definition at line 285 of file Tensor2_times_Tensor2.hpp.

◆ operator*() [114/391]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V FTensor::operator* ( const Tensor2_Expr< B, U, Dim, Dim, i, j > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

Definition at line 60 of file Tensor2_symmetric_times_Tensor2.hpp.

63 {
64 return T2s_times_T2_01(a, b, Number<Dim>(), Number<Dim>());
65 }
promote< T, U >::V T2s_times_T2_01(const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_Expr< B, U, Dim, Dim, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ operator*() [115/391]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V FTensor::operator* ( const Tensor2_Expr< B, U, Dim, Dim, j, i > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

Definition at line 119 of file Tensor2_symmetric_times_Tensor2.hpp.

122 {
123 return T2s_times_T2_01(a, b, Number<Dim>(), Number<Dim>());
124 }

◆ operator*() [116/391]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_10< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, k > FTensor::operator* ( const Tensor2_Expr< B, U, Dim, Dim1, j, k > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

◆ operator*() [117/391]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_00< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, k > FTensor::operator* ( const Tensor2_Expr< B, U, Dim, Dim1, j, k > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a 
)

◆ operator*() [118/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 144 of file Tensor3_times_Tensor2.hpp.

146 {
147 return a * b;
148 }

◆ operator*() [119/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b,
const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &  a 
)

Definition at line 488 of file Tensor3_times_Tensor2.hpp.

490 {
491 using TensorExpr = Tensor3_times_Tensor2_0_01<A, B, T, U, Dim0, Dim1, Dim2,
492 Dim3, i, j, k, l>;
494 Dim3, j, k, l>(TensorExpr(a, b));
495 }

◆ operator*() [120/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 306 of file Tensor4_times_Tensor2_double.hpp.

308 {
309 return a * b;
310 }

◆ operator*() [121/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 100 of file Tensor3_times_Tensor2.hpp.

102 {
103 return a * b;
104 }

◆ operator*() [122/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 256 of file Tensor4_times_Tensor2_double.hpp.

258 {
259 return a * b;
260 }

◆ operator*() [123/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_03< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, k > FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 233 of file Tensor4_times_Tensor2.hpp.

235 {
236 typedef const Tensor4_times_Tensor2_03<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
237 i, j, k, l>
238 TensorExpr;
240 k>(TensorExpr(a, b));
241 }

◆ operator*() [124/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 206 of file Tensor4_times_Tensor2_double.hpp.

208 {
209 return a * b;
210 }

◆ operator*() [125/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_0_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim1, Dim2, Dim3, m, j, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 730 of file Tensor4_times_Tensor2.hpp.

732 {
733 typedef const Tensor4_times_Tensor2_0_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
734 Dim4, i, j, k, l, m>
735 TensorExpr;
737 Dim2, Dim3, m, j, k, l>(TensorExpr(a, b));
738 }

◆ operator*() [126/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 208 of file Tensor4_times_Tensor2_single.hpp.

210 {
211 return a * b;
212 }

◆ operator*() [127/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 214 of file Ddg_times_Tensor2.hpp.

215 {
216 using TensorExpr =
219 k, l>(TensorExpr(a, b));
220 }

◆ operator*() [128/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim01, i, j > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, j, i, k, l > &  a 
)

Definition at line 244 of file Ddg_times_Tensor2.hpp.

245 {
246 using TensorExpr =
249 k, l>(TensorExpr(a, b));
250 }

◆ operator*() [129/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_01< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, i > FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim01, j, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a 
)

Definition at line 584 of file Dg_times_Tensor2.hpp.

586 {
589 TensorExpr(a, b));
590 }

◆ operator*() [130/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, i > FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim01, k, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a 
)

Definition at line 651 of file Dg_times_Tensor2.hpp.

653 {
656 TensorExpr(a, b));
657 }

◆ operator*() [131/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_0< A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim1, m, j, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim1, i, m > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 793 of file Ddg_times_Tensor2.hpp.

795 {
796 typedef const Ddg_times_Tensor2_0_0<A, B, T, U, Dim01, Dim23, Dim1, i, j,
797 k, l, m>
798 TensorExpr;
800 Dim23, Dim23, m, j, k, l>(TensorExpr(a, b));
801 }

◆ operator*() [132/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim1, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_0_1< A, B, T, U, Dim01, Dim23, Dim1, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim01, Dim23, Dim23, m, j, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim1, m, i > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 860 of file Ddg_times_Tensor2.hpp.

862 {
863 typedef const Ddg_times_Tensor2_0_1<A, B, T, U, Dim01, Dim23, Dim1, i, j,
864 k, l, m>
865 TensorExpr;
867 Dim23, Dim23, m, j, k, l>(TensorExpr(a, b));
868 }

◆ operator*() [133/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_12< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i > FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 316 of file Dg_times_Tensor2.hpp.

318 {
321 TensorExpr(a, b));
322 }

◆ operator*() [134/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_02< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i > FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim2, j, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, j, i, k > &  a 
)

Definition at line 450 of file Dg_times_Tensor2.hpp.

452 {
455 TensorExpr(a, b));
456 }

◆ operator*() [135/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_0< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim2, Dim23, Dim23, i, m, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim2, j, m > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 659 of file Ddg_times_Tensor2.hpp.

661 {
662 typedef const Ddg_times_Tensor2_1_0<A, B, T, U, Dim01, Dim23, Dim2, i, j,
663 k, l, m>
664 TensorExpr;
666 Dim23, Dim2, i, m, k, l>(TensorExpr(a, b));
667 }

◆ operator*() [136/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_1_1< A, B, T, U, Dim01, Dim23, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim2, Dim23, Dim23, i, m, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim2, m, j > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 726 of file Ddg_times_Tensor2.hpp.

728 {
729 typedef const Ddg_times_Tensor2_1_1<A, B, T, U, Dim01, Dim23, Dim2, i, j,
730 k, l, m>
731 TensorExpr;
733 Dim23, Dim2, i, m, k, l>(TensorExpr(a, b));
734 }

◆ operator*() [137/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_Expr< Ddg_times_Tensor2_13< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, k > FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim23, j, l > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 317 of file Ddg_times_Tensor2.hpp.

318 {
319 using TensorExpr
322 k>(TensorExpr(a, b));
323 }

◆ operator*() [138/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_1_0< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim3, i, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim01, Dim3, j, l > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 186 of file Dg_times_Tensor2.hpp.

188 {
189 using TensorExpr
192 Dim3, i, k, l>(TensorExpr(a, b));
193 }

◆ operator*() [139/391]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_11< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, k > FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim, k, j > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

◆ operator*() [140/391]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_01< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, k > FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim, k, j > &  b,
const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a 
)

◆ operator*() [141/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 166 of file Tensor3_times_Tensor2.hpp.

168 {
169 return a * b;
170 }

◆ operator*() [142/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b,
const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &  a 
)

Definition at line 553 of file Tensor3_times_Tensor2.hpp.

555 {
556 using TensorExpr = Tensor3_times_Tensor2_0_10<A, B, T, U, Dim0, Dim1, Dim2,
557 Dim3, i, j, k, l>;
559 Dim3, j, k, l>(TensorExpr(a, b));
560 }

◆ operator*() [143/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 331 of file Tensor4_times_Tensor2_double.hpp.

333 {
334 return a * b;
335 }

◆ operator*() [144/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 56 of file Tensor3_times_Tensor2.hpp.

58 {
59 return a * b;
60 }

◆ operator*() [145/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &  a 
)

Definition at line 358 of file Tensor3_times_Tensor2.hpp.

360 {
361 using TensorExpr = Tensor3_times_Tensor2_1_01<A, B, T, U, Dim0, Dim1, Dim2,
362 Dim3, i, j, k, l>;
364 Dim3, i, k, l>(TensorExpr(a, b));
365 }

◆ operator*() [146/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 156 of file Tensor4_times_Tensor2_double.hpp.

158 {
159 return a * b;
160 }

◆ operator*() [147/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_13< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, i, k > FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim3, j, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 374 of file Tensor4_times_Tensor2.hpp.

376 {
377 typedef const Tensor4_times_Tensor2_13<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
378 i, j, k, l>
379 TensorExpr;
381 k>(TensorExpr(a, b));
382 }

◆ operator*() [148/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim3, j, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 106 of file Tensor4_times_Tensor2_double.hpp.

108 {
109 return a * b;
110 }

◆ operator*() [149/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim4, Dim2, Dim3, i, m, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 590 of file Tensor4_times_Tensor2.hpp.

592 {
593 typedef const Tensor4_times_Tensor2_1_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
594 Dim4, i, j, k, l, m>
595 TensorExpr;
597 Dim4, Dim3, i, m, k, l>(TensorExpr(a, b));
598 }

◆ operator*() [150/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 158 of file Tensor4_times_Tensor2_single.hpp.

160 {
161 return a * b;
162 }

◆ operator*() [151/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 122 of file Tensor3_times_Tensor2.hpp.

124 {
125 return a * b;
126 }

◆ operator*() [152/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 281 of file Tensor4_times_Tensor2_double.hpp.

283 {
284 return a * b;
285 }

◆ operator*() [153/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_20< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i > FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim01, j, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, k, i, j > &  a 
)

Definition at line 517 of file Dg_times_Tensor2.hpp.

519 {
522 TensorExpr(a, b));
523 }

◆ operator*() [154/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_21< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, i > FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim01, k, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 383 of file Dg_times_Tensor2.hpp.

385 {
388 TensorExpr(a, b));
389 }

◆ operator*() [155/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 78 of file Tensor3_times_Tensor2.hpp.

80 {
81 return a * b;
82 }

◆ operator*() [156/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &  a 
)

Definition at line 423 of file Tensor3_times_Tensor2.hpp.

425 {
426 using TensorExpr = Tensor3_times_Tensor2_1_10<A, B, T, U, Dim0, Dim1, Dim2,
427 Dim3, i, j, k, l>;
429 Dim3, i, k, l>(TensorExpr(a, b));
430 }

◆ operator*() [157/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 181 of file Tensor4_times_Tensor2_double.hpp.

183 {
184 return a * b;
185 }

◆ operator*() [158/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_0< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim3, i, j, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 62 of file Dg_times_Tensor2.hpp.

64 {
65 using TensorExpr
67 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim3, i, j, l>(
68 TensorExpr(a, b));
69 }

◆ operator*() [159/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 228 of file Tensor3_times_Tensor2.hpp.

230 {
231 using TensorExpr = Tensor3_times_Tensor2_2_01<A, B, T, U, Dim0, Dim1, Dim2,
232 Dim3, i, j, k, l>;
234 Dim3, i, j, l>(TensorExpr(a, b));
235 }

◆ operator*() [160/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 77 of file Tensor4_times_Tensor2.hpp.

79 {
80 typedef const Tensor4_times_Tensor2_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
81 i, j, k, l>
82 TensorExpr;
84 j>(TensorExpr(a, b));
85 }

◆ operator*() [161/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 56 of file Tensor4_times_Tensor2_double.hpp.

58 {
59 return a * b;
60 }

◆ operator*() [162/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim3, i, j, m, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 870 of file Tensor4_times_Tensor2.hpp.

872 {
873 typedef const Tensor4_times_Tensor2_2_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
874 Dim4, i, j, k, l, m>
875 TensorExpr;
877 Dim4, Dim3, i, j, m, l>(TensorExpr(a, b));
878 }

◆ operator*() [163/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 108 of file Tensor4_times_Tensor2_single.hpp.

110 {
111 return a * b;
112 }

◆ operator*() [164/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_23< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, j > FTensor::operator* ( const Tensor2_Expr< B, U, Dim23, Dim23, k, l > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 74 of file Ddg_times_Tensor2.hpp.

76 {
77 using TensorExpr
80 i, j>(TensorExpr(a, b));
81 }

◆ operator*() [165/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_32< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, j > FTensor::operator* ( const Tensor2_Expr< B, U, Dim23, Dim23, l, k > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 148 of file Ddg_times_Tensor2.hpp.

150 {
151 using TensorExpr
154 i, j>(TensorExpr(a, b));
155 }

◆ operator*() [166/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_1< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, k, m > FTensor::operator* ( const Tensor2_Expr< B, U, Dim23, Dim4, l, m > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 391 of file Ddg_times_Tensor2.hpp.

393 {
394 typedef const Ddg_times_Tensor2_3_1<A, B, T, U, Dim01, Dim23, Dim4, i, j,
395 k, l, m>
396 TensorExpr;
398 Dim23, Dim4, i, j, k, m>(TensorExpr(a, b));
399 }

◆ operator*() [167/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_30< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, k > FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 311 of file Tensor4_times_Tensor2.hpp.

313 {
314 typedef const Tensor4_times_Tensor2_30<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
315 i, j, k, l>
316 TensorExpr;
318 k>(TensorExpr(a, b));
319 }

◆ operator*() [168/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 231 of file Tensor4_times_Tensor2_double.hpp.

233 {
234 return a * b;
235 }

◆ operator*() [169/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_1_1< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim3, i, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim01, l, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 248 of file Dg_times_Tensor2.hpp.

250 {
251 using TensorExpr
254 Dim3, i, k, l>(TensorExpr(a, b));
255 }

◆ operator*() [170/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim1, l, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 131 of file Tensor4_times_Tensor2_double.hpp.

133 {
134 return a * b;
135 }

◆ operator*() [171/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, int Dim3, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_1< A, B, T, U, Dim01, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim3, i, j, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 124 of file Dg_times_Tensor2.hpp.

126 {
127 using TensorExpr
129 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim3, i, j, l>(
130 TensorExpr(a, b));
131 }

◆ operator*() [172/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 293 of file Tensor3_times_Tensor2.hpp.

295 {
296 using TensorExpr = Tensor3_times_Tensor2_2_10<A, B, T, U, Dim0, Dim1, Dim2,
297 Dim3, i, j, k, l>;
299 Dim3, i, j, l>(TensorExpr(a, b));
300 }

◆ operator*() [173/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_32< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 155 of file Tensor4_times_Tensor2.hpp.

157 {
158 typedef const Tensor4_times_Tensor2_32<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
159 i, j, k, l>
160 TensorExpr;
162 j>(TensorExpr(a, b));
163 }

◆ operator*() [174/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 81 of file Tensor4_times_Tensor2_double.hpp.

83 {
84 return a * b;
85 }

◆ operator*() [175/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim4, i, j, k, m > FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 450 of file Tensor4_times_Tensor2.hpp.

452 {
453 typedef const Tensor4_times_Tensor2_3_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
454 Dim4, i, j, k, l, m>
455 TensorExpr;
457 Dim2, Dim4, i, j, k, m>(TensorExpr(a, b));
458 }

◆ operator*() [176/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 58 of file Tensor4_times_Tensor2_single.hpp.

60 {
61 return a * b;
62 }

◆ operator*() [177/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim0, m, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 233 of file Tensor4_times_Tensor2_single.hpp.

235 {
236 return a * b;
237 }

◆ operator*() [178/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_0_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim4, Dim1, Dim2, Dim3, m, j, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim1, m, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 800 of file Tensor4_times_Tensor2.hpp.

802 {
803 typedef const Tensor4_times_Tensor2_0_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
804 Dim4, i, j, k, l, m>
805 TensorExpr;
807 Dim2, Dim3, m, j, k, l>(TensorExpr(a, b));
808 }

◆ operator*() [179/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim4, Dim2, Dim3, i, m, k, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 660 of file Tensor4_times_Tensor2.hpp.

662 {
663 typedef const Tensor4_times_Tensor2_1_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
664 Dim4, i, j, k, l, m>
665 TensorExpr;
667 Dim2, Dim3, i, m, k, l>(TensorExpr(a, b));
668 }

◆ operator*() [180/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 183 of file Tensor4_times_Tensor2_single.hpp.

185 {
186 return a * b;
187 }

◆ operator*() [181/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim3, i, j, m, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 940 of file Tensor4_times_Tensor2.hpp.

942 {
943 typedef const Tensor4_times_Tensor2_2_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
944 Dim4, i, j, k, l, m>
945 TensorExpr;
947 Dim4, Dim3, i, j, m, l>(TensorExpr(a, b));
948 }

◆ operator*() [182/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 133 of file Tensor4_times_Tensor2_single.hpp.

135 {
136 return a * b;
137 }

◆ operator*() [183/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_1< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, m, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim23, k, m > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 592 of file Ddg_times_Tensor2.hpp.

594 {
595 typedef const Ddg_times_Tensor2_2_1<A, B, T, U, Dim01, Dim23, Dim4, i, j,
596 k, l, m>
597 TensorExpr;
599 Dim23, Dim4, i, j, m, l>(TensorExpr(a, b));
600 }

◆ operator*() [184/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_2_0< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, m, l > FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim23, m, k > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 525 of file Ddg_times_Tensor2.hpp.

527 {
528 typedef const Ddg_times_Tensor2_2_0<A, B, T, U, Dim01, Dim23, Dim4, i, j,
529 k, l, m>
530 TensorExpr;
532 Dim23, Dim4, i, j, m, l>(TensorExpr(a, b));
533 }

◆ operator*() [185/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Ddg_times_Tensor2_3_0< A, B, T, U, Dim01, Dim23, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim01, Dim01, Dim23, Dim4, i, j, k, m > FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim23, m, l > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)
inline

Definition at line 458 of file Ddg_times_Tensor2.hpp.

460 {
461 typedef const Ddg_times_Tensor2_3_0<A, B, T, U, Dim01, Dim23, Dim4, i, j,
462 k, l, m>
463 TensorExpr;
465 Dim23, Dim4, i, j, k, m>(TensorExpr(a, b));
466 }

◆ operator*() [186/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim4, i, j, k, m > FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 520 of file Tensor4_times_Tensor2.hpp.

522 {
523 typedef const Tensor4_times_Tensor2_3_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
524 Dim4, i, j, k, l, m>
525 TensorExpr;
527 Dim2, Dim4, i, j, k, m>(TensorExpr(a, b));
528 }

◆ operator*() [187/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 83 of file Tensor4_times_Tensor2_single.hpp.

85 {
86 return a * b;
87 }

◆ operator*() [188/391]

template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr< Tensor2_symmetric_times_Tensor1_1< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor1_Expr< B, U, Dim, j > &  b 
)

Definition at line 44 of file Tensor2_symmetric_times_Tensor1.hpp.

46 {
47 using TensorExpr
50 TensorExpr(a, b));
51 }

◆ operator*() [189/391]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
Dg_Expr< Tensor2_symmetric_times_Tensor1< A, B, T, U, Dim, Dim2, i, j, k >, typename promote< T, U >::V, Dim, Dim2, i, j, k > FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor1_Expr< B, U, Dim2, k > &  b 
)

Definition at line 151 of file Tensor2_symmetric_times_Tensor1.hpp.

153 {
154 using TensorExpr
157 TensorExpr(a, b));
158 }

◆ operator*() [190/391]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, i, j > &  b 
)

Definition at line 50 of file Tensor2_symmetric_times_Tensor2.hpp.

52 {
53 return T2s_times_T2_01(a, b, Number<Dim>(), Number<Dim>());
54 }

◆ operator*() [191/391]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, j, i > &  b 
)

Definition at line 109 of file Tensor2_symmetric_times_Tensor2.hpp.

111 {
112 return T2s_times_T2_01(a, b, Number<Dim>(), Number<Dim>());
113 }

◆ operator*() [192/391]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_10< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, k > FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim1, j, k > &  b 
)

Definition at line 170 of file Tensor2_symmetric_times_Tensor2.hpp.

172 {
173 using TensorExpr
176 TensorExpr(a, b));
177 }

◆ operator*() [193/391]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_11< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, k > FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim1, Dim, k, j > &  b 
)

Definition at line 234 of file Tensor2_symmetric_times_Tensor2.hpp.

236 {
237 using TensorExpr
240 TensorExpr(a, b));
241 }

◆ operator*() [194/391]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  b 
)

Definition at line 50 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

52 {
53 return T2s_times_T2s(a, b, Number<Dim>(), Number<Dim>());
54 }
promote< T, U >::V T2s_times_T2s(const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ operator*() [195/391]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, i > &  b 
)

Definition at line 95 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

97 {
99 }
promote< T, U >::V T2s_times_switched_T2s(const Tensor2_symmetric_Expr< A, T, Dim, i, j > &a, const Tensor2_symmetric_Expr< B, U, Dim, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ operator*() [196/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_10< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, k > FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

◆ operator*() [197/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_11< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, k > FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, k, j > &  b 
)

◆ operator*() [198/391]

template<class A , class T , class U , int Dim, char i, char j>
auto FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const U &  d0 
)

Definition at line 9 of file Tensor2_symmetric_times_generic.hpp.

10 {
11 auto TensorExpr = [&a, d0](const int N1, const int N2) {
12 return a.operator()(N1, N2) * d0;
13 };
14 return Tensor2_symmetric_Expr<decltype(TensorExpr),
15 typename promote<T, U>::V, Dim, i, j>(
16 TensorExpr);
17 }

◆ operator*() [199/391]

template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor1_Expr< Tensor2_symmetric_times_Tensor1_0< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a,
const Tensor1_Expr< B, U, Dim, j > &  b 
)

Definition at line 88 of file Tensor2_symmetric_times_Tensor1.hpp.

90 {
91 using TensorExpr
94 TensorExpr(a, b));
95 }

◆ operator*() [200/391]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_00< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, k > FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a,
const Tensor2_Expr< B, U, Dim, Dim1, j, k > &  b 
)

Definition at line 298 of file Tensor2_symmetric_times_Tensor2.hpp.

300 {
301 using TensorExpr
304 TensorExpr(a, b));
305 }

◆ operator*() [201/391]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_01< A, B, T, U, Dim, Dim1, i, j, k >, typename promote< T, U >::V, Dim, Dim1, i, k > FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a,
const Tensor2_Expr< B, U, Dim1, Dim, k, j > &  b 
)

Definition at line 362 of file Tensor2_symmetric_times_Tensor2.hpp.

364 {
365 using TensorExpr
368 TensorExpr(a, b));
369 }

◆ operator*() [202/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_00< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, k > FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

◆ operator*() [203/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor2_Expr< Tensor2_symmetric_times_Tensor2_symmetric_01< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, k > FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim, j, i > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, k, j > &  b 
)

◆ operator*() [204/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, char k, char l>
Ddg_Expr< Tensor2_symmetric_times_Tensor2_symmetric< A, B, T, U, Dim0, Dim1, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, j, k, l > FTensor::operator* ( const Tensor2_symmetric_Expr< A, T, Dim0, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim1, k, l > &  b 
)

Definition at line 317 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

319 {
320 using TensorExpr
321 = Tensor2_symmetric_times_Tensor2_symmetric<A, B, T, U, Dim0, Dim1, i, j,
322 k, l>;
324 l>(TensorExpr(a, b));
325 }

◆ operator*() [205/391]

template<class A , class B , class T , class U , int Dim, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_01< A, B, T, U, Dim, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim3, k, l > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  b,
const Tensor4_Expr< A, T, Dim, Dim, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 465 of file Tensor4_times_Tensor2_symmetric.hpp.

467 {
468 using TensorExpr
469 = Tensor4_times_Tensor2_symmetric_01<A, B, T, U, Dim, Dim2, Dim3, i, j,
470 k, l>;
472 l>(TensorExpr(a, b));
473 }

◆ operator*() [206/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Riemann_times_Tensor2_symmetric_0< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, j, l > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, i, k > &  b,
const Riemann_Expr< A, T, Dim, i, j, k, l > &  a 
)

Definition at line 59 of file Riemann_times_Tensor2_symmetric.hpp.

◆ operator*() [207/391]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_02< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, l > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, i, k > &  b,
const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &  a 
)

Definition at line 389 of file Tensor4_times_Tensor2_symmetric.hpp.

391 {
392 using TensorExpr
393 = Tensor4_times_Tensor2_symmetric_02<A, B, T, U, Dim1, Dim2, Dim, i, j,
394 k, l>;
396 l>(TensorExpr(a, b));
397 }

◆ operator*() [208/391]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_symmetric_0< A, B, T, U, Dim, Dim1, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim, Dim1, Dim2, l, j, k > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, i, l > &  b,
const Tensor3_Expr< A, T, Dim, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 337 of file Tensor3_times_Tensor2_symmetric.hpp.

338 {
339 using TensorExpr = Tensor3_times_Tensor2_symmetric_0<A, B, T, U, Dim, Dim1,
340 Dim2, i, j, k, l>;
342 l, j, k>(TensorExpr(a, b));
343 }

◆ operator*() [209/391]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_03< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, k > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, i, l > &  b,
const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &  a 
)

Definition at line 233 of file Tensor4_times_Tensor2_symmetric.hpp.

235 {
236 using TensorExpr
237 = Tensor4_times_Tensor2_symmetric_03<A, B, T, U, Dim1, Dim2, Dim, i, j,
238 k, l>;
240 k>(TensorExpr(a, b));
241 }

◆ operator*() [210/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_12< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b,
const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a 
)

Definition at line 322 of file Dg_times_Tensor2_symmetric.hpp.

324 {
327 TensorExpr(a, b));
328 }

◆ operator*() [211/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b,
const Dg_Expr< A, T, Dim, Dim, j, i, k > &  a 
)

Definition at line 452 of file Dg_times_Tensor2_symmetric.hpp.

454 {
457 TensorExpr(a, b));
458 }

◆ operator*() [212/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_20< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b,
const Dg_Expr< A, T, Dim, Dim, k, i, j > &  a 
)

Definition at line 517 of file Dg_times_Tensor2_symmetric.hpp.

519 {
522 TensorExpr(a, b));
523 }

◆ operator*() [213/391]

template<class A , class B , class T , class U , int Dim2, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_01< A, B, T, U, Dim2, Dim, i, j, k >, typename promote< T, U >::V, Dim2, i > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b,
const Tensor3_Expr< A, T, Dim, Dim, Dim2, j, k, i > &  a 
)

◆ operator*() [214/391]

template<class A , class B , class T , class U , int Dim1, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_02< A, B, T, U, Dim1, Dim, i, j, k >, typename promote< T, U >::V, Dim1, i > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b,
const Tensor3_Expr< A, T, Dim, Dim1, Dim, j, i, k > &  a 
)

◆ operator*() [215/391]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_12< A, B, T, U, Dim0, Dim, i, j, k >, typename promote< T, U >::V, Dim0, i > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b,
const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a 
)

◆ operator*() [216/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_Expr< Ddg_times_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, k > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b,
const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a 
)

Definition at line 73 of file Ddg_times_Tensor2_symmetric.hpp.

75 {
76 using TensorExpr
79 TensorExpr(a, b));
80 }

◆ operator*() [217/391]

template<class A , class B , class T , class U , int Dim0, int Dim, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_symmetric_1< A, B, T, U, Dim0, Dim, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim, Dim2, i, l, k > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b,
const Tensor3_Expr< A, T, Dim0, Dim, Dim2, i, j, k > &  a 
)

Definition at line 277 of file Tensor3_times_Tensor2_symmetric.hpp.

278 {
279 using TensorExpr = Tensor3_times_Tensor2_symmetric_1<A, B, T, U, Dim0, Dim,
280 Dim2, i, j, k, l>;
282 i, l, k>(TensorExpr(a, b));
283 }

◆ operator*() [218/391]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_21< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, k, j > &  b,
const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a 
)

Definition at line 387 of file Dg_times_Tensor2_symmetric.hpp.

389 {
392 TensorExpr(a, b));
393 }

◆ operator*() [219/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_23< A, B, T, U, Dim0, Dim1, Dim, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, k, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &  a 
)

Definition at line 77 of file Tensor4_times_Tensor2_symmetric.hpp.

79 {
80 using TensorExpr
81 = Tensor4_times_Tensor2_symmetric_23<A, B, T, U, Dim0, Dim1, Dim, i, j,
82 k, l>;
84 j>(TensorExpr(a, b));
85 }

◆ operator*() [220/391]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_30< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, k > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, l, i > &  b,
const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &  a 
)

Definition at line 311 of file Tensor4_times_Tensor2_symmetric.hpp.

313 {
314 using TensorExpr
315 = Tensor4_times_Tensor2_symmetric_30<A, B, T, U, Dim1, Dim2, Dim, i, j,
316 k, l>;
318 k>(TensorExpr(a, b));
319 }

◆ operator*() [221/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_32< A, B, T, U, Dim0, Dim1, Dim, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim, l, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &  a 
)

Definition at line 155 of file Tensor4_times_Tensor2_symmetric.hpp.

157 {
158 using TensorExpr
159 = Tensor4_times_Tensor2_symmetric_32<A, B, T, U, Dim0, Dim1, Dim, i, j,
160 k, l>;
162 j>(TensorExpr(a, b));
163 }

◆ operator*() [222/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_01< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim23, k, l > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 148 of file Ddg_times_Tensor2_symmetric.hpp.

150 {
151 using TensorExpr
154 k, l>(TensorExpr(a, b));
155 }

◆ operator*() [223/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_01< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, i > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim01, j, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a 
)

Definition at line 586 of file Dg_times_Tensor2_symmetric.hpp.

588 {
589 using TensorExpr
592 TensorExpr(a, b));
593 }

◆ operator*() [224/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_0< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim01, i, k, l > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim01, j, l > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 191 of file Dg_times_Tensor2_symmetric.hpp.

193 {
194 using TensorExpr
197 Dim01, i, k, l>(TensorExpr(a, b));
198 }

◆ operator*() [225/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Tensor1_Expr< Dg_times_Tensor2_symmetric_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim2, i > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim01, k, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, j, k, i > &  a 
)

Definition at line 656 of file Dg_times_Tensor2_symmetric.hpp.

658 {
659 using TensorExpr
662 TensorExpr(a, b));
663 }

◆ operator*() [226/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Dg_times_Tensor2_symmetric_1_1< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, Dim01, i, k, l > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim01, l, j > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 256 of file Dg_times_Tensor2_symmetric.hpp.

258 {
259 using TensorExpr
262 Dim01, i, k, l>(TensorExpr(a, b));
263 }

◆ operator*() [227/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_symmetric_0< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, j, l > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim2, k, l > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 63 of file Dg_times_Tensor2_symmetric.hpp.

65 {
66 using TensorExpr
68 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, l>(
69 TensorExpr(a, b));
70 }

◆ operator*() [228/391]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k, char l>
Dg_Expr< Dg_times_Tensor2_symmetric_1< A, B, T, U, Dim01, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim2, i, j, l > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim2, l, k > &  b,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 126 of file Dg_times_Tensor2_symmetric.hpp.

128 {
129 using TensorExpr
131 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, l>(
132 TensorExpr(a, b));
133 }

◆ operator*() [229/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_times_Tensor2_symmetric_23< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, i, j > FTensor::operator* ( const Tensor2_symmetric_Expr< B, U, Dim23, k, l > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 223 of file Ddg_times_Tensor2_symmetric.hpp.

225 {
226 using TensorExpr
229 i, j>(TensorExpr(a, b));
230 }

◆ operator*() [230/391]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b 
)

Definition at line 81 of file Tensor3_antisymmetric_times_Tensor3.hpp.

83 {
86 }
promote< T, U >::V T3as_times_T3_012(const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [231/391]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b 
)

Definition at line 521 of file Tensor3_antisymmetric_times_Tensor3.hpp.

523 {
525 Number<Dim12>());
526 }

◆ operator*() [232/391]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &  b 
)

Definition at line 345 of file Tensor3_antisymmetric_times_Tensor3.hpp.

347 {
349 Number<Dim12>());
350 }
promote< T, U >::V T3as_times_T3_102(const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [233/391]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &  b 
)

Definition at line 257 of file Tensor3_antisymmetric_times_Tensor3.hpp.

259 {
261 Number<Dim12>());
262 }
promote< T, U >::V T3as_times_T3_120(const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [234/391]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &  b 
)

Definition at line 169 of file Tensor3_antisymmetric_times_Tensor3.hpp.

171 {
173 Number<Dim12>());
174 }
promote< T, U >::V T3as_times_T3_201(const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [235/391]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &  b 
)

Definition at line 433 of file Tensor3_antisymmetric_times_Tensor3.hpp.

435 {
437 Number<Dim12>());
438 }
promote< T, U >::V T3as_times_T3_210(const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [236/391]

template<class A , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_times_generic< A, T, U, Dim0, Dim12, i, j, k >, typename promote< T, U >::V, Dim0, Dim12, i, j, k > FTensor::operator* ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const U &  d0 
)

◆ operator*() [237/391]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, i, j, k > &  b 
)

Definition at line 66 of file Tensor3_times_Dg.hpp.

68 {
70 Number<Dim2>());
71 }
promote< T, U >::V T3_times_T3dg_012(const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [238/391]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, j, i, k > &  b 
)

Definition at line 261 of file Tensor3_times_Dg.hpp.

263 {
264 return T3_times_T3dg_102(a, b, Number<Dim>(), Number<Dim>(),
265 Number<Dim2>());
266 }
promote< T, U >::V T3_times_T3dg_102(const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [239/391]

template<class A , class B , class T , class U , int Dim2, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_01< A, B, T, U, Dim2, Dim, i, j, k >, typename promote< T, U >::V, Dim2, i > FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, j, k, i > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

Definition at line 200 of file Tensor3_times_Tensor2_symmetric.hpp.

202 {
203 using TensorExpr
206 TensorExpr(a, b));
207 }

◆ operator*() [240/391]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, i, k, j > &  b 
)

Definition at line 391 of file Tensor3_times_Dg.hpp.

393 {
395 Number<Dim>());
396 }
promote< T, U >::V T3_times_T3dg_021(const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [241/391]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, k, i, j > &  b 
)

Definition at line 131 of file Tensor3_times_Dg.hpp.

133 {
135 Number<Dim>());
136 }
promote< T, U >::V T3_times_T3dg_201(const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [242/391]

template<class A , class B , class T , class U , int Dim1, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_02< A, B, T, U, Dim1, Dim, i, j, k >, typename promote< T, U >::V, Dim1, i > FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, j, i, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

Definition at line 128 of file Tensor3_times_Tensor2_symmetric.hpp.

130 {
131 using TensorExpr
134 TensorExpr(a, b));
135 }

◆ operator*() [243/391]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_symmetric_0< A, B, T, U, Dim, Dim1, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim, Dim1, Dim2, l, j, k > FTensor::operator* ( const Tensor3_Expr< A, T, Dim, Dim1, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, l > &  b 
)

Definition at line 322 of file Tensor3_times_Tensor2_symmetric.hpp.

323 {
324 using TensorExpr = Tensor3_times_Tensor2_symmetric_0<A, B, T, U, Dim, Dim1,
325 Dim2, i, j, k, l>;
327 l, j, k>(TensorExpr(a, b));
328 }

◆ operator*() [244/391]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, j, k, i > &  b 
)

Definition at line 196 of file Tensor3_times_Dg.hpp.

198 {
200 Number<Dim>());
201 }
promote< T, U >::V T3_times_T3dg_120(const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [245/391]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, k, j, i > &  b 
)

Definition at line 326 of file Tensor3_times_Dg.hpp.

328 {
330 Number<Dim>());
331 }
promote< T, U >::V T3_times_T3dg_210(const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &a, const Dg_Expr< B, U, Dim, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [246/391]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
Tensor1_Expr< Tensor3_times_Tensor2_symmetric_12< A, B, T, U, Dim0, Dim, i, j, k >, typename promote< T, U >::V, Dim0, i > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, k > &  b 
)

Definition at line 56 of file Tensor3_times_Tensor2_symmetric.hpp.

58 {
59 using TensorExpr
62 TensorExpr(a, b));
63 }

◆ operator*() [247/391]

template<class A , class B , class T , class U , int Dim0, int Dim, int Dim2, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_symmetric_1< A, B, T, U, Dim0, Dim, Dim2, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim, Dim2, i, l, k > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim, Dim2, i, j, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b 
)

Definition at line 262 of file Tensor3_times_Tensor2_symmetric.hpp.

263 {
264 using TensorExpr = Tensor3_times_Tensor2_symmetric_1<A, B, T, U, Dim0, Dim,
265 Dim2, i, j, k, l>;
267 i, l, k>(TensorExpr(a, b));
268 }

◆ operator*() [248/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim, char i, char j, char k, char l, char m>
Tensor4_Expr< Tensor3_times_Dg< A, B, T, U, Dim0, Dim1, Dim, Dim2, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim, Dim2, i, j, l, m > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, l, k, m > &  b 
)

Definition at line 498 of file Tensor3_times_Dg.hpp.

500 {
501 using TensorExpr
504 Dim2, i, j, l, m>(TensorExpr(a, b));
505 }

◆ operator*() [249/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_0< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim1, Dim2, j, k > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor1_Expr< B, U, Dim0, i > &  b 
)

Definition at line 107 of file Tensor3_times_Tensor1.hpp.

109 {
110 using TensorExpr
113 k>(TensorExpr(a, b));
114 }

◆ operator*() [250/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_1< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim2, i, k > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor1_Expr< B, U, Dim1, j > &  b 
)

Definition at line 45 of file Tensor3_times_Tensor1.hpp.

47 {
48 using TensorExpr
51 k>(TensorExpr(a, b));
52 }

◆ operator*() [251/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor2_Expr< Tensor3_times_Tensor1_2< A, B, T, U, Dim0, Dim1, Dim2, i, j, k >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor1_Expr< B, U, Dim2, k > &  b 
)

Definition at line 169 of file Tensor3_times_Tensor1.hpp.

171 {
172 using TensorExpr
175 j>(TensorExpr(a, b));
176 };

◆ operator*() [252/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b 
)

Definition at line 131 of file Tensor3_times_Tensor2.hpp.

133 {
134 using TensorExpr
135 = Tensor3_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim0, Dim1,
136 i, j, k, i, j, Dim2, Dim0, Dim1, k, i, j>;
138 TensorExpr(a, b));
139 }

◆ operator*() [253/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &  b 
)

Definition at line 87 of file Tensor3_times_Tensor2.hpp.

89 {
90 using TensorExpr
91 = Tensor3_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim0, Dim2,
92 i, j, k, i, k, Dim1, Dim0, Dim2, j, i, k>;
94 TensorExpr(a, b));
95 }

◆ operator*() [254/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b 
)

Definition at line 153 of file Tensor3_times_Tensor2.hpp.

155 {
156 using TensorExpr
157 = Tensor3_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim1, Dim0,
158 i, j, k, j, i, Dim2, Dim0, Dim1, k, i, j>;
160 TensorExpr(a, b));
161 }

◆ operator*() [255/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b 
)

Definition at line 43 of file Tensor3_times_Tensor2.hpp.

45 {
46 using TensorExpr
47 = Tensor3_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim1, Dim2,
48 i, j, k, j, k, Dim0, Dim1, Dim2, i, j, k>;
50 TensorExpr(a, b));
51 }

◆ operator*() [256/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &  b 
)

Definition at line 109 of file Tensor3_times_Tensor2.hpp.

111 {
112 using TensorExpr
113 = Tensor3_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim2, Dim0,
114 i, j, k, k, i, Dim1, Dim0, Dim2, j, i, k>;
116 TensorExpr(a, b));
117 }

◆ operator*() [257/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b 
)

Definition at line 65 of file Tensor3_times_Tensor2.hpp.

67 {
68 using TensorExpr
69 = Tensor3_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim2, Dim1,
70 i, j, k, k, j, Dim0, Dim1, Dim2, i, j, k>;
72 TensorExpr(a, b));
73 }

◆ operator*() [258/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, l > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b 
)

Definition at line 212 of file Tensor3_times_Tensor2.hpp.

214 {
215 using TensorExpr = Tensor3_times_Tensor2_2_01<A, B, T, U, Dim0, Dim1, Dim2,
216 Dim3, i, j, k, l>;
218 Dim3, i, j, l>(TensorExpr(a, b));
219 }

◆ operator*() [259/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_2_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, l > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b 
)

Definition at line 277 of file Tensor3_times_Tensor2.hpp.

279 {
280 using TensorExpr = Tensor3_times_Tensor2_2_10<A, B, T, U, Dim0, Dim1, Dim2,
281 Dim3, i, j, k, l>;
283 Dim3, i, j, l>(TensorExpr(a, b));
284 }

◆ operator*() [260/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b 
)

Definition at line 66 of file Tensor3_times_Tensor3.hpp.

68 {
70 Number<Dim2>());
71 }
promote< T, U >::V T3_times_T3_012(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [261/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b 
)

Definition at line 391 of file Tensor3_times_Tensor3.hpp.

393 {
394 return T3_times_T3_021(a, b, Number<Dim0>(), Number<Dim1>(),
395 Number<Dim2>());
396 }
promote< T, U >::V T3_times_T3_021(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [262/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b 
)

Definition at line 261 of file Tensor3_times_Tensor3.hpp.

263 {
264 return T3_times_T3_102(a, b, Number<Dim0>(), Number<Dim1>(),
265 Number<Dim2>());
266 }
promote< T, U >::V T3_times_T3_102(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [263/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b 
)

Definition at line 196 of file Tensor3_times_Tensor3.hpp.

198 {
199 return T3_times_T3_120(a, b, Number<Dim0>(), Number<Dim1>(),
200 Number<Dim2>());
201 }
promote< T, U >::V T3_times_T3_120(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [264/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b 
)

Definition at line 131 of file Tensor3_times_Tensor3.hpp.

133 {
134 return T3_times_T3_201(a, b, Number<Dim0>(), Number<Dim1>(),
135 Number<Dim2>());
136 }
promote< T, U >::V T3_times_T3_201(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [265/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b 
)

Definition at line 326 of file Tensor3_times_Tensor3.hpp.

328 {
329 return T3_times_T3_210(a, b, Number<Dim0>(), Number<Dim1>(),
330 Number<Dim2>());
331 }
promote< T, U >::V T3_times_T3_210(const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &a, const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &b, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ operator*() [266/391]

template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const U &  d0 
)

Definition at line 11 of file Tensor3_times_generic.hpp.

13 {
14 auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3) {
15 return a.operator()(N1, N2, N3) * d0;
16 };
17 return Tensor3_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
18 Dim1, Dim2, i, j, k>(TensorExpr);
19 }

◆ operator*() [267/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim23, int Dim4, int Dim5, char i, char j, char k, char l, char m>
Tensor4_Expr< Tensor3_times_Tensor3_21< A, B, T, U, Dim0, Dim1, Dim23, Dim4, Dim5, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim5, i, j, l, m > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim23, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim23, Dim4, Dim5, k, l, m > &  b 
)

Definition at line 652 of file Tensor3_times_Tensor3.hpp.

654 {
655 using TensorExpr = Tensor3_times_Tensor3_21<A, B, T, U, Dim0, Dim1, Dim23,
656 Dim4, Dim5, i, j, k, l, m>;
658 Dim4, Dim5, i, j, l, m>(TensorExpr(a, b));
659 };

◆ operator*() [268/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, l > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b 
)

Definition at line 342 of file Tensor3_times_Tensor2.hpp.

344 {
345 using TensorExpr = Tensor3_times_Tensor2_1_01<A, B, T, U, Dim0, Dim1, Dim2,
346 Dim3, i, j, k, l>;
348 Dim3, i, k, l>(TensorExpr(a, b));
349 }

◆ operator*() [269/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_1_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim2, Dim3, i, k, l > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim3, i, j, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b 
)

Definition at line 407 of file Tensor3_times_Tensor2.hpp.

409 {
410 using TensorExpr = Tensor3_times_Tensor2_1_10<A, B, T, U, Dim0, Dim1, Dim2,
411 Dim3, i, j, k, l>;
413 Dim3, i, k, l>(TensorExpr(a, b));
414 }

◆ operator*() [270/391]

template<class A , class B , class T , class U , int Dim14, int Dim25, int Dim0, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Tensor3_23_23< A, B, T, U, Dim14, Dim25, Dim0, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim3, k, l > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim14, Dim25, k, i, j > &  a,
const Tensor3_Expr< B, U, Dim3, Dim14, Dim25, l, i, j > &  b 
)

Definition at line 550 of file Tensor3_times_Tensor3.hpp.

551 {
552 using TensorExpr = Tensor3_times_Tensor3_23_23<A, B, T, U, Dim14, Dim25,
553 Dim0, Dim3, i, j, k, l>;
555 l>(TensorExpr(a, b));
556 };

◆ operator*() [271/391]

template<class A , class B , class T , class U , int Dim15, int Dim24, int Dim0, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Tensor3_23_32< A, B, T, U, Dim15, Dim24, Dim0, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim3, i, j > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim15, Dim24, i, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim24, Dim15, j, l, k > &  b 
)

Definition at line 497 of file Tensor3_times_Tensor3.hpp.

498 {
499 using TensorExpr = Tensor3_times_Tensor3_23_32<A, B, T, U, Dim15, Dim24,
500 Dim0, Dim3, i, j, k, l>;
502 j>(TensorExpr(a, b));
503 };

◆ operator*() [272/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, l > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b 
)

Definition at line 472 of file Tensor3_times_Tensor2.hpp.

474 {
475 using TensorExpr = Tensor3_times_Tensor2_0_01<A, B, T, U, Dim0, Dim1, Dim2,
476 Dim3, i, j, k, l>;
478 Dim3, j, k, l>(TensorExpr(a, b));
479 }

◆ operator*() [273/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< Tensor3_times_Tensor2_0_10< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, l > FTensor::operator* ( const Tensor3_Expr< A, T, Dim0, Dim2, Dim3, i, k, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b 
)

Definition at line 537 of file Tensor3_times_Tensor2.hpp.

539 {
540 using TensorExpr = Tensor3_times_Tensor2_0_10<A, B, T, U, Dim0, Dim1, Dim2,
541 Dim3, i, j, k, l>;
543 Dim3, j, k, l>(TensorExpr(a, b));
544 }

◆ operator*() [274/391]

template<class A , class B , class T , class U , int Dim03, int Dim14, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Dg_12_12< A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim5, k, l > FTensor::operator* ( const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim03, Dim5, i, j, l > &  b 
)

Definition at line 555 of file Tensor3_times_Dg.hpp.

556 {
557 using TensorExpr = Tensor3_times_Dg_12_12<A, B, T, U, Dim03, Dim14, Dim2,
558 Dim5, i, j, k, l>;
560 l>(TensorExpr(a, b));
561 };

◆ operator*() [275/391]

template<class A , class B , class T , class U , int Dim03, int Dim14, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Tensor3_12_12< A, B, T, U, Dim03, Dim14, Dim2, Dim5, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim5, k, l > FTensor::operator* ( const Tensor3_Expr< A, T, Dim03, Dim14, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim03, Dim14, Dim5, i, j, l > &  b 
)

Definition at line 603 of file Tensor3_times_Tensor3.hpp.

604 {
605 using TensorExpr = Tensor3_times_Tensor3_12_12<A, B, T, U, Dim03, Dim14,
606 Dim2, Dim5, i, j, k, l>;
608 l>(TensorExpr(a, b));
609 };

◆ operator*() [276/391]

template<class A , class B , class T , class U , int Dim04, int Dim13, int Dim2, int Dim5, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Tensor3_12_21< A, B, T, U, Dim04, Dim13, Dim2, Dim5, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim5, k, l > FTensor::operator* ( const Tensor3_Expr< A, T, Dim04, Dim13, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim13, Dim04, Dim5, j, i, l > &  b 
)

Definition at line 444 of file Tensor3_times_Tensor3.hpp.

445 {
446 using TensorExpr = Tensor3_times_Tensor3_12_21<A, B, T, U, Dim04, Dim13,
447 Dim2, Dim5, i, j, k, l>;
449 l>(TensorExpr(a, b));
450 };

◆ operator*() [277/391]

template<class A , class B , class T , class U , int Dim2, int Dim1, int Dim01, char i, char j, char k, char l>
Tensor2_Expr< Tensor3_times_Dg_02_20< A, B, T, U, Dim2, Dim1, Dim01, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim01, i, l > FTensor::operator* ( const Tensor3_Expr< A, T, Dim2, Dim1, Dim01, j, i, k > &  a,
const Dg_Expr< B, U, Dim01, Dim2, k, l, j > &  b 
)

Definition at line 447 of file Tensor3_times_Dg.hpp.

◆ operator*() [278/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 509 of file Tensor4_times_Tensor3_triple.hpp.

511 {
512 return a * b;
513 }

◆ operator*() [279/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim1, Dim3, i, j, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 359 of file Tensor4_times_Tensor3_triple.hpp.

361 {
362 return a * b;
363 }

◆ operator*() [280/391]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 91 of file Tensor3_antisymmetric_times_Tensor3.hpp.

93 {
94 return a * b;
95 }

◆ operator*() [281/391]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 531 of file Tensor3_antisymmetric_times_Tensor3.hpp.

533 {
534 return a * b;
535 }

◆ operator*() [282/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 534 of file Tensor4_times_Tensor3_triple.hpp.

536 {
537 return a * b;
538 }

◆ operator*() [283/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim2, Dim3, i, k, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 209 of file Tensor4_times_Tensor3_triple.hpp.

211 {
212 return a * b;
213 }

◆ operator*() [284/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim3, Dim1, i, l, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 384 of file Tensor4_times_Tensor3_triple.hpp.

386 {
387 return a * b;
388 }

◆ operator*() [285/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim0, Dim3, Dim2, i, l, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 234 of file Tensor4_times_Tensor3_triple.hpp.

236 {
237 return a * b;
238 }

◆ operator*() [286/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 559 of file Tensor4_times_Tensor3_triple.hpp.

561 {
562 return a * b;
563 }

◆ operator*() [287/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim1, Dim0, Dim3, j, i, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 409 of file Tensor4_times_Tensor3_triple.hpp.

411 {
412 return a * b;
413 }

◆ operator*() [288/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 584 of file Tensor4_times_Tensor3_triple.hpp.

586 {
587 return a * b;
588 }

◆ operator*() [289/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim1, Dim2, Dim3, j, k, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 59 of file Tensor4_times_Tensor3_triple.hpp.

61 {
62 return a * b;
63 }

◆ operator*() [290/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim1, Dim3, Dim0, j, l, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 434 of file Tensor4_times_Tensor3_triple.hpp.

436 {
437 return a * b;
438 }

◆ operator*() [291/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim1, Dim3, Dim2, j, l, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 84 of file Tensor4_times_Tensor3_triple.hpp.

86 {
87 return a * b;
88 }

◆ operator*() [292/391]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< B, U, Dim12, Dim0, Dim12, j, i, k > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 355 of file Tensor3_antisymmetric_times_Tensor3.hpp.

357 {
358 return a * b;
359 }

◆ operator*() [293/391]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< B, U, Dim12, Dim0, Dim12, k, i, j > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 179 of file Tensor3_antisymmetric_times_Tensor3.hpp.

181 {
182 return a * b;
183 }

◆ operator*() [294/391]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< B, U, Dim12, Dim12, Dim0, j, k, i > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 267 of file Tensor3_antisymmetric_times_Tensor3.hpp.

269 {
270 return a * b;
271 }

◆ operator*() [295/391]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::operator* ( const Tensor3_Expr< B, U, Dim12, Dim12, Dim0, k, j, i > &  b,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 443 of file Tensor3_antisymmetric_times_Tensor3.hpp.

445 {
446 return a * b;
447 }

◆ operator*() [296/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 609 of file Tensor4_times_Tensor3_triple.hpp.

611 {
612 return a * b;
613 }

◆ operator*() [297/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim0, Dim3, k, i, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 259 of file Tensor4_times_Tensor3_triple.hpp.

261 {
262 return a * b;
263 }

◆ operator*() [298/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 634 of file Tensor4_times_Tensor3_triple.hpp.

636 {
637 return a * b;
638 }

◆ operator*() [299/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim1, Dim3, k, j, l > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 109 of file Tensor4_times_Tensor3_triple.hpp.

111 {
112 return a * b;
113 }

◆ operator*() [300/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim3, Dim0, k, l, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 284 of file Tensor4_times_Tensor3_triple.hpp.

286 {
287 return a * b;
288 }

◆ operator*() [301/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim3, Dim1, k, l, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 134 of file Tensor4_times_Tensor3_triple.hpp.

136 {
137 return a * b;
138 }

◆ operator*() [302/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, i, j, m > FTensor::operator* ( const Tensor3_Expr< B, U, Dim2, Dim3, Dim4, k, l, m > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 78 of file Tensor4_times_Tensor3_double.hpp.

79 {
80 typedef const Tensor4_times_Tensor3_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
81 Dim4, i, j, k, l, m>
82 TensorExpr;
84 i, j, m>(TensorExpr(a, b));
85 }

◆ operator*() [303/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim3, Dim0, Dim1, l, i, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 459 of file Tensor4_times_Tensor3_triple.hpp.

461 {
462 return a * b;
463 }

◆ operator*() [304/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim3, Dim0, Dim2, l, i, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 309 of file Tensor4_times_Tensor3_triple.hpp.

311 {
312 return a * b;
313 }

◆ operator*() [305/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim3, Dim1, Dim0, l, j, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 484 of file Tensor4_times_Tensor3_triple.hpp.

486 {
487 return a * b;
488 }

◆ operator*() [306/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim3, Dim1, Dim2, l, j, k > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 159 of file Tensor4_times_Tensor3_triple.hpp.

161 {
162 return a * b;
163 }

◆ operator*() [307/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim3, Dim2, Dim0, l, k, i > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 334 of file Tensor4_times_Tensor3_triple.hpp.

336 {
337 return a * b;
338 }

◆ operator*() [308/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor3_Expr< B, U, Dim3, Dim2, Dim1, l, k, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 184 of file Tensor4_times_Tensor3_triple.hpp.

186 {
187 return a * b;
188 }

◆ operator*() [309/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_12_21< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim3, Dim4, i, l, m > FTensor::operator* ( const Tensor3_Expr< B, U, Dim4, Dim2, Dim1, m, k, j > &  b,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)
inline

Definition at line 156 of file Tensor4_times_Tensor3_double.hpp.

158 {
159 typedef const Tensor4_times_Tensor3_12_21<A, B, T, U, Dim0, Dim1, Dim2,
160 Dim3, Dim4, i, j, k, l, m>
161 TensorExpr;
163 i, l, m>(TensorExpr(a, b));
164 }

◆ operator*() [310/391]

template<class A , class B , class T , class U , int Dim, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_01< A, B, T, U, Dim, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim2, Dim3, k, l > FTensor::operator* ( const Tensor4_Expr< A, T, Dim, Dim, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  b 
)

Definition at line 449 of file Tensor4_times_Tensor2_symmetric.hpp.

450 {
451 using TensorExpr
452 = Tensor4_times_Tensor2_symmetric_01<A, B, T, U, Dim, Dim2, Dim3, i, j,
453 k, l>;
455 l>(TensorExpr(a, b));
456 }

◆ operator*() [311/391]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_02< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, l > FTensor::operator* ( const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, k > &  b 
)

Definition at line 372 of file Tensor4_times_Tensor2_symmetric.hpp.

374 {
375 using TensorExpr
376 = Tensor4_times_Tensor2_symmetric_02<A, B, T, U, Dim1, Dim2, Dim, i, j,
377 k, l>;
379 l>(TensorExpr(a, b));
380 }

◆ operator*() [312/391]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_03< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, k > FTensor::operator* ( const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, l > &  b 
)

Definition at line 216 of file Tensor4_times_Tensor2_symmetric.hpp.

218 {
219 using TensorExpr
220 = Tensor4_times_Tensor2_symmetric_03<A, B, T, U, Dim1, Dim2, Dim, i, j,
221 k, l>;
223 k>(TensorExpr(a, b));
224 }

◆ operator*() [313/391]

template<class A , class B , class T , class U , int Dim, int Dim1, int Dim2, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_30< A, B, T, U, Dim1, Dim2, Dim, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, k > FTensor::operator* ( const Tensor4_Expr< A, T, Dim, Dim1, Dim2, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, l, i > &  b 
)

Definition at line 294 of file Tensor4_times_Tensor2_symmetric.hpp.

296 {
297 using TensorExpr
298 = Tensor4_times_Tensor2_symmetric_30<A, B, T, U, Dim1, Dim2, Dim, i, j,
299 k, l>;
301 k>(TensorExpr(a, b));
302 }

◆ operator*() [314/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_23< A, B, T, U, Dim0, Dim1, Dim, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, k, l > &  b 
)

Definition at line 60 of file Tensor4_times_Tensor2_symmetric.hpp.

62 {
63 using TensorExpr
64 = Tensor4_times_Tensor2_symmetric_23<A, B, T, U, Dim0, Dim1, Dim, i, j,
65 k, l>;
67 j>(TensorExpr(a, b));
68 }

◆ operator*() [315/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim, char i, char j, char k, char l>
Tensor2_Expr< Tensor4_times_Tensor2_symmetric_32< A, B, T, U, Dim0, Dim1, Dim, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, l, k > &  b 
)

Definition at line 138 of file Tensor4_times_Tensor2_symmetric.hpp.

140 {
141 using TensorExpr
142 = Tensor4_times_Tensor2_symmetric_32<A, B, T, U, Dim0, Dim1, Dim, i, j,
143 k, l>;
145 j>(TensorExpr(a, b));
146 }

◆ operator*() [316/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Dg_01< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim2, Dim3, Dim4, k, l, m > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Dg_Expr< B, U, Dim2, Dim4, i, j, m > &  b 
)
inline

Definition at line 127 of file Tensor4_times_Dg_double.hpp.

128 {
129 typedef const Tensor4_times_Dg_01<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i,
130 j, k, l, m>
131 TensorExpr;
133 k, l, m>(TensorExpr(a, b));
134}

◆ operator*() [317/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Dg_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, i, j, m > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Dg_Expr< B, U, Dim2, Dim4, k, l, m > &  b 
)
inline

Definition at line 55 of file Tensor4_times_Dg_double.hpp.

56 {
57 typedef const Tensor4_times_Dg_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i,
58 j, k, l, m>
59 TensorExpr;
61 i, j, m>(TensorExpr(a, b));
62}

◆ operator*() [318/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, Dim3, j, k, l > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim0, i > &  b 
)
inline

Definition at line 252 of file Tensor4_times_Tensor1.hpp.

254 {
255 typedef const Tensor4_times_Tensor1_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
256 i, j, k, l>
257 TensorExpr;
259 Dim3, j, k, l>(TensorExpr(a, b));
260 }

◆ operator*() [319/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_1< A, B, T, U, Dim0, Dim2, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, k, l > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim1, j > &  b 
)
inline

Definition at line 184 of file Tensor4_times_Tensor1.hpp.

186 {
187 typedef const Tensor4_times_Tensor1_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
188 i, j, k, l>
189 TensorExpr;
191 Dim3, i, k, l>(TensorExpr(a, b));
192 }

◆ operator*() [320/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_2< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim3, i, j, l > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim2, k > &  b 
)
inline

Definition at line 116 of file Tensor4_times_Tensor1.hpp.

118 {
119 typedef const Tensor4_times_Tensor1_2<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
120 i, j, k, l>
121 TensorExpr;
123 Dim3, i, j, l>(TensorExpr(a, b));
124 }

◆ operator*() [321/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor3_Expr< const Tensor4_times_Tensor1_3< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, Dim2, i, j, k > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor1_Expr< B, U, Dim3, l > &  b 
)
inline

Definition at line 48 of file Tensor4_times_Tensor1.hpp.

50 {
51 typedef const Tensor4_times_Tensor1_3<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
52 i, j, k, l>
53 TensorExpr;
55 Dim2, i, j, k>(TensorExpr(a, b));
56 }

◆ operator*() [322/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b 
)

Definition at line 291 of file Tensor4_times_Tensor2_double.hpp.

293 {
294 using TensorExpr
295 = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
296 Dim1, i, j, k, l, i, j, Dim2, Dim3, Dim0,
297 Dim1, k, l, i, j>;
299 l>(TensorExpr(a, b));
300 }

◆ operator*() [323/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim2, i, k > &  b 
)

Definition at line 241 of file Tensor4_times_Tensor2_double.hpp.

243 {
244 using TensorExpr
245 = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
246 Dim2, i, j, k, l, i, k, Dim1, Dim3, Dim0,
247 Dim2, j, l, i, k>;
249 l>(TensorExpr(a, b));
250 }

◆ operator*() [324/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_03< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, k > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &  b 
)
inline

Definition at line 216 of file Tensor4_times_Tensor2.hpp.

218 {
219 typedef const Tensor4_times_Tensor2_03<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
220 i, j, k, l>
221 TensorExpr;
223 k>(TensorExpr(a, b));
224 }

◆ operator*() [325/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim3, i, l > &  b 
)

Definition at line 191 of file Tensor4_times_Tensor2_double.hpp.

193 {
194 using TensorExpr
195 = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
196 Dim3, i, j, k, l, i, l, Dim1, Dim2, Dim0,
197 Dim3, j, k, i, l>;
199 k>(TensorExpr(a, b));
200 }

◆ operator*() [326/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_0_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim1, Dim1, Dim2, Dim3, m, j, k, l > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &  b 
)
inline

Definition at line 712 of file Tensor4_times_Tensor2.hpp.

714 {
715 typedef const Tensor4_times_Tensor2_0_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
716 Dim4, i, j, k, l, m>
717 TensorExpr;
719 Dim2, Dim3, m, j, k, l>(TensorExpr(a, b));
720 }

◆ operator*() [327/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim0, Dim4, i, m > &  b 
)

Definition at line 193 of file Tensor4_times_Tensor2_single.hpp.

195 {
196 using TensorExpr
197 = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
198 Dim4, i, j, k, l, i, m, Dim1, Dim2, Dim3,
199 Dim0, Dim4, j, k, l, i, m>;
201 Dim3, Dim4, j, k, l, m>(TensorExpr(a, b));
202 }

◆ operator*() [328/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b 
)

Definition at line 316 of file Tensor4_times_Tensor2_double.hpp.

318 {
319 using TensorExpr
320 = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
321 Dim0, i, j, k, l, j, i, Dim2, Dim3, Dim0,
322 Dim1, k, l, i, j>;
324 l>(TensorExpr(a, b));
325 }

◆ operator*() [329/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim2, j, k > &  b 
)

Definition at line 141 of file Tensor4_times_Tensor2_double.hpp.

143 {
144 using TensorExpr
145 = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
146 Dim2, i, j, k, l, j, k, Dim0, Dim3, Dim1,
147 Dim2, i, l, j, k>;
149 l>(TensorExpr(a, b));
150 }

◆ operator*() [330/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim3, j, l > &  b 
)

Definition at line 91 of file Tensor4_times_Tensor2_double.hpp.

93 {
94 using TensorExpr
95 = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
96 Dim3, i, j, k, l, j, l, Dim0, Dim2, Dim1,
97 Dim3, i, k, j, l>;
99 k>(TensorExpr(a, b));
100 }

◆ operator*() [331/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim4, Dim2, Dim3, i, m, k, l > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &  b 
)
inline

Definition at line 572 of file Tensor4_times_Tensor2.hpp.

574 {
575 typedef const Tensor4_times_Tensor2_1_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
576 Dim4, i, j, k, l, m>
577 TensorExpr;
579 Dim4, Dim3, i, m, k, l>(TensorExpr(a, b));
580 }

◆ operator*() [332/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim1, Dim4, j, m > &  b 
)

Definition at line 143 of file Tensor4_times_Tensor2_single.hpp.

145 {
146 using TensorExpr
147 = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
148 Dim4, i, j, k, l, j, m, Dim0, Dim2, Dim3,
149 Dim1, Dim4, i, k, l, j, m>;
151 Dim3, Dim4, i, k, l, m>(TensorExpr(a, b));
152 }

◆ operator*() [333/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim0, k, i > &  b 
)

Definition at line 266 of file Tensor4_times_Tensor2_double.hpp.

268 {
269 using TensorExpr
270 = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
271 Dim0, i, j, k, l, k, i, Dim1, Dim3, Dim0,
272 Dim2, j, l, i, k>;
274 l>(TensorExpr(a, b));
275 }

◆ operator*() [334/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim1, k, j > &  b 
)

Definition at line 166 of file Tensor4_times_Tensor2_double.hpp.

168 {
169 using TensorExpr
170 = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
171 Dim1, i, j, k, l, k, j, Dim0, Dim3, Dim1,
172 Dim2, i, l, j, k>;
174 l>(TensorExpr(a, b));
175 }

◆ operator*() [335/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b 
)
inline

Definition at line 60 of file Tensor4_times_Tensor2.hpp.

62 {
63 typedef const Tensor4_times_Tensor2_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
64 i, j, k, l>
65 TensorExpr;
67 j>(TensorExpr(a, b));
68 }

◆ operator*() [336/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim3, k, l > &  b 
)

Definition at line 41 of file Tensor4_times_Tensor2_double.hpp.

43 {
44 using TensorExpr
45 = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
46 Dim3, i, j, k, l, k, l, Dim0, Dim1, Dim2,
47 Dim3, i, j, k, l>;
49 j>(TensorExpr(a, b));
50 }

◆ operator*() [337/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim3, i, j, m, l > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &  b 
)
inline

Definition at line 852 of file Tensor4_times_Tensor2.hpp.

854 {
855 typedef const Tensor4_times_Tensor2_2_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
856 Dim4, i, j, k, l, m>
857 TensorExpr;
859 Dim4, Dim3, i, j, m, l>(TensorExpr(a, b));
860 }

◆ operator*() [338/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim2, Dim4, k, m > &  b 
)

Definition at line 93 of file Tensor4_times_Tensor2_single.hpp.

95 {
96 using TensorExpr
97 = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
98 Dim4, i, j, k, l, k, m, Dim0, Dim1, Dim3,
99 Dim2, Dim4, i, j, l, k, m>;
101 Dim3, Dim4, i, j, l, m>(TensorExpr(a, b));
102 }

◆ operator*() [339/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_30< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim1, Dim2, j, k > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &  b 
)
inline

Definition at line 294 of file Tensor4_times_Tensor2.hpp.

296 {
297 typedef const Tensor4_times_Tensor2_30<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
298 i, j, k, l>
299 TensorExpr;
301 k>(TensorExpr(a, b));
302 }

◆ operator*() [340/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim0, l, i > &  b 
)

Definition at line 216 of file Tensor4_times_Tensor2_double.hpp.

218 {
219 using TensorExpr
220 = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
221 Dim0, i, j, k, l, l, i, Dim1, Dim2, Dim0,
222 Dim3, j, k, i, l>;
224 k>(TensorExpr(a, b));
225 }

◆ operator*() [341/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim1, l, j > &  b 
)

Definition at line 116 of file Tensor4_times_Tensor2_double.hpp.

118 {
119 using TensorExpr
120 = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
121 Dim1, i, j, k, l, l, j, Dim0, Dim2, Dim1,
122 Dim3, i, k, j, l>;
124 k>(TensorExpr(a, b));
125 }

◆ operator*() [342/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
Tensor2_Expr< const Tensor4_times_Tensor2_32< A, B, T, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b 
)
inline

Definition at line 138 of file Tensor4_times_Tensor2.hpp.

140 {
141 typedef const Tensor4_times_Tensor2_32<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
142 i, j, k, l>
143 TensorExpr;
145 j>(TensorExpr(a, b));
146 }

◆ operator*() [343/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim2, l, k > &  b 
)

Definition at line 66 of file Tensor4_times_Tensor2_double.hpp.

68 {
69 using TensorExpr
70 = Tensor4_times_Tensor2_double<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
71 Dim2, i, j, k, l, l, k, Dim0, Dim1, Dim2,
72 Dim3, i, j, k, l>;
74 j>(TensorExpr(a, b));
75 }

◆ operator*() [344/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim4, i, j, k, m > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &  b 
)
inline

Definition at line 432 of file Tensor4_times_Tensor2.hpp.

434 {
435 typedef const Tensor4_times_Tensor2_3_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
436 Dim4, i, j, k, l, m>
437 TensorExpr;
439 Dim2, Dim4, i, j, k, m>(TensorExpr(a, b));
440 }

◆ operator*() [345/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim3, Dim4, l, m > &  b 
)

Definition at line 42 of file Tensor4_times_Tensor2_single.hpp.

44 {
45 using TensorExpr
46 = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
47 Dim4, i, j, k, l, l, m, Dim0, Dim1, Dim2,
48 Dim3, Dim4, i, j, k, l, m>;
50 Dim2, Dim4, i, j, k, m>(TensorExpr(a, b));
51 }

◆ operator*() [346/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim0, m, i > &  b 
)

Definition at line 218 of file Tensor4_times_Tensor2_single.hpp.

220 {
221 using TensorExpr
222 = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4,
223 Dim0, i, j, k, l, m, i, Dim1, Dim2, Dim3,
224 Dim0, Dim4, j, k, l, i, m>;
226 Dim3, Dim4, j, k, l, m>(TensorExpr(a, b));
227 }

◆ operator*() [347/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_1_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim4, Dim2, Dim3, i, m, k, l > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &  b 
)
inline

Definition at line 642 of file Tensor4_times_Tensor2.hpp.

644 {
645 typedef const Tensor4_times_Tensor2_1_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
646 Dim4, i, j, k, l, m>
647 TensorExpr;
649 Dim2, Dim3, i, m, k, l>(TensorExpr(a, b));
650 }

◆ operator*() [348/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim1, m, j > &  b 
)

Definition at line 168 of file Tensor4_times_Tensor2_single.hpp.

170 {
171 using TensorExpr
172 = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4,
173 Dim1, i, j, k, l, m, j, Dim0, Dim2, Dim3,
174 Dim1, Dim4, i, k, l, j, m>;
176 Dim3, Dim4, i, k, l, m>(TensorExpr(a, b));
177 }

◆ operator*() [349/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_2_1< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, Dim3, i, j, m, l > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &  b 
)
inline

Definition at line 922 of file Tensor4_times_Tensor2.hpp.

924 {
925 typedef const Tensor4_times_Tensor2_2_1<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
926 Dim4, i, j, k, l, m>
927 TensorExpr;
929 Dim4, Dim3, i, j, m, l>(TensorExpr(a, b));
930 }

◆ operator*() [350/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim2, m, k > &  b 
)

Definition at line 118 of file Tensor4_times_Tensor2_single.hpp.

120 {
121 using TensorExpr
122 = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4,
123 Dim2, i, j, k, l, m, k, Dim0, Dim1, Dim3,
124 Dim2, Dim4, i, j, l, k, m>;
126 Dim3, Dim4, i, j, l, m>(TensorExpr(a, b));
127 }

◆ operator*() [351/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
const Tensor4_Expr< const Tensor4_times_Tensor2_3_0< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim2, Dim4, i, j, k, m > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &  b 
)
inline

Definition at line 502 of file Tensor4_times_Tensor2.hpp.

504 {
505 typedef const Tensor4_times_Tensor2_3_0<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
506 Dim4, i, j, k, l, m>
507 TensorExpr;
509 Dim2, Dim4, i, j, k, m>(TensorExpr(a, b));
510 }

◆ operator*() [352/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor2_Expr< B, U, Dim4, Dim3, m, l > &  b 
)

Definition at line 68 of file Tensor4_times_Tensor2_single.hpp.

70 {
71 using TensorExpr
72 = Tensor4_times_Tensor2_single<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4,
73 Dim3, i, j, k, l, m, l, Dim0, Dim1, Dim2,
74 Dim3, Dim4, i, j, k, l, m>;
76 Dim2, Dim4, i, j, k, m>(TensorExpr(a, b));
77 }

◆ operator*() [353/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b 
)

Definition at line 494 of file Tensor4_times_Tensor3_triple.hpp.

496 {
497 using TensorExpr
498 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
499 Dim1, Dim2, i, j, k, l, i, j, k, Dim3,
500 Dim0, Dim1, Dim2, l, i, j, k>;
502 TensorExpr(a, b));
503 }

◆ operator*() [354/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim3, i, j, l > &  b 
)

Definition at line 344 of file Tensor4_times_Tensor3_triple.hpp.

346 {
347 using TensorExpr
348 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
349 Dim1, Dim3, i, j, k, l, i, j, l, Dim2,
350 Dim0, Dim1, Dim3, k, i, j, l>;
352 TensorExpr(a, b));
353 }

◆ operator*() [355/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b 
)

Definition at line 519 of file Tensor4_times_Tensor3_triple.hpp.

521 {
522 using TensorExpr
523 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
524 Dim2, Dim1, i, j, k, l, i, k, j, Dim3,
525 Dim0, Dim1, Dim2, l, i, j, k>;
527 TensorExpr(a, b));
528 }

◆ operator*() [356/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim3, i, k, l > &  b 
)

Definition at line 194 of file Tensor4_times_Tensor3_triple.hpp.

196 {
197 using TensorExpr
198 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
199 Dim2, Dim3, i, j, k, l, i, k, l, Dim1,
200 Dim0, Dim2, Dim3, j, i, k, l>;
202 TensorExpr(a, b));
203 }

◆ operator*() [357/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim0, Dim3, Dim1, i, l, j > &  b 
)

Definition at line 369 of file Tensor4_times_Tensor3_triple.hpp.

371 {
372 using TensorExpr
373 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
374 Dim3, Dim1, i, j, k, l, i, l, j, Dim2,
375 Dim0, Dim1, Dim3, k, i, j, l>;
377 TensorExpr(a, b));
378 }

◆ operator*() [358/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim0, Dim3, Dim2, i, l, k > &  b 
)

Definition at line 219 of file Tensor4_times_Tensor3_triple.hpp.

221 {
222 using TensorExpr
223 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim0,
224 Dim3, Dim2, i, j, k, l, i, l, k, Dim1,
225 Dim0, Dim2, Dim3, j, i, k, l>;
227 TensorExpr(a, b));
228 }

◆ operator*() [359/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b 
)

Definition at line 544 of file Tensor4_times_Tensor3_triple.hpp.

546 {
547 using TensorExpr
548 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
549 Dim0, Dim2, i, j, k, l, j, i, k, Dim3,
550 Dim0, Dim1, Dim2, l, i, j, k>;
552 TensorExpr(a, b));
553 }

◆ operator*() [360/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim3, j, i, l > &  b 
)

Definition at line 394 of file Tensor4_times_Tensor3_triple.hpp.

396 {
397 using TensorExpr
398 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
399 Dim0, Dim3, i, j, k, l, j, i, l, Dim2,
400 Dim0, Dim1, Dim3, k, i, j, l>;
402 TensorExpr(a, b));
403 }

◆ operator*() [361/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b 
)

Definition at line 569 of file Tensor4_times_Tensor3_triple.hpp.

571 {
572 using TensorExpr
573 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
574 Dim2, Dim0, i, j, k, l, j, k, i, Dim3,
575 Dim0, Dim1, Dim2, l, i, j, k>;
577 TensorExpr(a, b));
578 }

◆ operator*() [362/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim3, j, k, l > &  b 
)

Definition at line 44 of file Tensor4_times_Tensor3_triple.hpp.

46 {
47 using TensorExpr
48 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
49 Dim2, Dim3, i, j, k, l, j, k, l, Dim0,
50 Dim1, Dim2, Dim3, i, j, k, l>;
52 TensorExpr(a, b));
53 }

◆ operator*() [363/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim1, Dim3, Dim0, j, l, i > &  b 
)

Definition at line 419 of file Tensor4_times_Tensor3_triple.hpp.

421 {
422 using TensorExpr
423 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
424 Dim3, Dim0, i, j, k, l, j, l, i, Dim2,
425 Dim0, Dim1, Dim3, k, i, j, l>;
427 TensorExpr(a, b));
428 }

◆ operator*() [364/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim1, Dim3, Dim2, j, l, k > &  b 
)

Definition at line 69 of file Tensor4_times_Tensor3_triple.hpp.

71 {
72 using TensorExpr
73 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim1,
74 Dim3, Dim2, i, j, k, l, j, l, k, Dim0,
75 Dim1, Dim2, Dim3, i, j, k, l>;
77 TensorExpr(a, b));
78 }

◆ operator*() [365/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b 
)

Definition at line 594 of file Tensor4_times_Tensor3_triple.hpp.

596 {
597 using TensorExpr
598 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
599 Dim0, Dim1, i, j, k, l, k, i, j, Dim3,
600 Dim0, Dim1, Dim2, l, i, j, k>;
602 TensorExpr(a, b));
603 }

◆ operator*() [366/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim3, k, i, l > &  b 
)

Definition at line 244 of file Tensor4_times_Tensor3_triple.hpp.

246 {
247 using TensorExpr
248 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
249 Dim0, Dim3, i, j, k, l, k, i, l, Dim1,
250 Dim0, Dim2, Dim3, j, i, k, l>;
252 TensorExpr(a, b));
253 }

◆ operator*() [367/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b 
)

Definition at line 619 of file Tensor4_times_Tensor3_triple.hpp.

621 {
622 using TensorExpr
623 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
624 Dim1, Dim0, i, j, k, l, k, j, i, Dim3,
625 Dim0, Dim1, Dim2, l, i, j, k>;
627 TensorExpr(a, b));
628 }

◆ operator*() [368/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim3, k, j, l > &  b 
)

Definition at line 94 of file Tensor4_times_Tensor3_triple.hpp.

96 {
97 using TensorExpr
98 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
99 Dim1, Dim3, i, j, k, l, k, j, l, Dim0,
100 Dim1, Dim2, Dim3, i, j, k, l>;
102 TensorExpr(a, b));
103 }

◆ operator*() [369/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim3, Dim0, k, l, i > &  b 
)

Definition at line 269 of file Tensor4_times_Tensor3_triple.hpp.

271 {
272 using TensorExpr
273 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
274 Dim3, Dim0, i, j, k, l, k, l, i, Dim1,
275 Dim0, Dim2, Dim3, j, i, k, l>;
277 TensorExpr(a, b));
278 }

◆ operator*() [370/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim3, Dim1, k, l, j > &  b 
)

Definition at line 119 of file Tensor4_times_Tensor3_triple.hpp.

121 {
122 using TensorExpr
123 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim2,
124 Dim3, Dim1, i, j, k, l, k, l, j, Dim0,
125 Dim1, Dim2, Dim3, i, j, k, l>;
127 TensorExpr(a, b));
128 }

◆ operator*() [371/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_23< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim1, Dim4, i, j, m > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim2, Dim3, Dim4, k, l, m > &  b 
)
inline

Definition at line 61 of file Tensor4_times_Tensor3_double.hpp.

62 {
63 typedef const Tensor4_times_Tensor3_23<A, B, T, U, Dim0, Dim1, Dim2, Dim3,
64 Dim4, i, j, k, l, m>
65 TensorExpr;
67 i, j, m>(TensorExpr(a, b));
68 }

◆ operator*() [372/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim0, Dim1, l, i, j > &  b 
)

Definition at line 444 of file Tensor4_times_Tensor3_triple.hpp.

446 {
447 using TensorExpr
448 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
449 Dim0, Dim1, i, j, k, l, l, i, j, Dim2,
450 Dim0, Dim1, Dim3, k, i, j, l>;
452 TensorExpr(a, b));
453 }

◆ operator*() [373/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim0, Dim2, l, i, k > &  b 
)

Definition at line 294 of file Tensor4_times_Tensor3_triple.hpp.

296 {
297 using TensorExpr
298 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
299 Dim0, Dim2, i, j, k, l, l, i, k, Dim1,
300 Dim0, Dim2, Dim3, j, i, k, l>;
302 TensorExpr(a, b));
303 }

◆ operator*() [374/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim1, Dim0, l, j, i > &  b 
)

Definition at line 469 of file Tensor4_times_Tensor3_triple.hpp.

471 {
472 using TensorExpr
473 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
474 Dim1, Dim0, i, j, k, l, l, j, i, Dim2,
475 Dim0, Dim1, Dim3, k, i, j, l>;
477 TensorExpr(a, b));
478 }

◆ operator*() [375/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim1, Dim2, l, j, k > &  b 
)

Definition at line 144 of file Tensor4_times_Tensor3_triple.hpp.

146 {
147 using TensorExpr
148 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
149 Dim1, Dim2, i, j, k, l, l, j, k, Dim0,
150 Dim1, Dim2, Dim3, i, j, k, l>;
152 TensorExpr(a, b));
153 }

◆ operator*() [376/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim2, Dim0, l, k, i > &  b 
)

Definition at line 319 of file Tensor4_times_Tensor3_triple.hpp.

321 {
322 using TensorExpr
323 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
324 Dim2, Dim0, i, j, k, l, l, k, i, Dim1,
325 Dim0, Dim2, Dim3, j, i, k, l>;
327 TensorExpr(a, b));
328 }

◆ operator*() [377/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim3, Dim2, Dim1, l, k, j > &  b 
)

Definition at line 169 of file Tensor4_times_Tensor3_triple.hpp.

171 {
172 using TensorExpr
173 = Tensor4_times_Tensor3_triple<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim3,
174 Dim2, Dim1, i, j, k, l, l, k, j, Dim0,
175 Dim1, Dim2, Dim3, i, j, k, l>;
177 TensorExpr(a, b));
178 }

◆ operator*() [378/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, char i, char j, char k, char l, char m>
Tensor3_Expr< const Tensor4_times_Tensor3_12_21< A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, i, j, k, l, m >, typename promote< T, U >::V, Dim0, Dim3, Dim4, i, l, m > FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor3_Expr< B, U, Dim4, Dim2, Dim1, m, k, j > &  b 
)
inline

Definition at line 139 of file Tensor4_times_Tensor3_double.hpp.

140 {
141 typedef const Tensor4_times_Tensor3_12_21<A, B, T, U, Dim0, Dim1, Dim2,
142 Dim3, Dim4, i, j, k, l, m>
143 TensorExpr;
145 i, l, m>(TensorExpr(a, b));
146 }

◆ operator*() [379/391]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, int Dim4, int Dim5, char i, char j, char k, char l, char m, char n>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const Tensor4_Expr< B, U, Dim2, Dim3, Dim4, Dim5, k, l, m, n > &  b 
)
inline

Definition at line 64 of file Tensor4_times_Tensor4_double.hpp.

65 {
66 using TensorExpr =
67 Tensor4_times_Tensor4_2345<A, B, T, U, Dim0, Dim1, Dim2, Dim3, Dim4, Dim5,
68 i, j, k, l, m, n>;
70 Dim5, i, j, m, n>(TensorExpr(a, b));
71}

◆ operator*() [380/391]

template<class A , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const U &  d0 
)

Definition at line 6 of file Tensor4_times_generic.hpp.

7 {
8 auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3,
9 const int N4) {
10 return a.operator()(N1, N2, N3, N4) * d0;
11 };
12 return Tensor4_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
13 Dim1, Dim2, Dim3, i, j, k, l>(TensorExpr);
14}

◆ operator*() [381/391]

template<class A , class B , char i, char j, char k, char l>
double FTensor::operator* ( const Tensor4_Expr< B, i, j, k, l > &  b,
const Riemann_Expr< A, i, j, k, l > &  a 
)

Definition at line 91 of file Riemann_times_Tensor4.hpp.

94 {
95 return operator*(a, b);
96 }

◆ operator*() [382/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim0, int Dim1, char i, char j, char k, char l, char m, char n>
Tensor4_Expr< Ddg_times_Tensor4_2323_klij< A, B, T, U, Dim01, Dim23, Dim0, Dim1, i, j, k, l, m, n >, typename promote< T, U >::V, Dim0, Dim1, Dim23, Dim23, i, j, k, l > FTensor::operator* ( const Tensor4_Expr< B, U, Dim0, Dim1, Dim23, Dim23, i, j, m, n > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, m, n, k, l > &  a 
)

Definition at line 146 of file Ddg_times_Tensor4.hpp.

147 {
148 using TensorExpr = Ddg_times_Tensor4_2323_klij<A, B, T, U, Dim01, Dim23, Dim0,
149 Dim1, i, j, k, l, m, n>;
151 Dim23, i, j, k, l>(TensorExpr(a, b));
152}

◆ operator*() [383/391]

template<class A , class B , class T , class U , int Dim01, int Dim23, int Dim2, int Dim3, char i, char j, char k, char l, char m, char n>
Tensor4_Expr< Ddg_times_Tensor4_2301_ijkl< A, B, T, U, Dim01, Dim23, Dim2, Dim3, i, j, k, l, m, n >, typename promote< T, U >::V, Dim01, Dim01, Dim2, Dim3, i, j, k, l > FTensor::operator* ( const Tensor4_Expr< B, U, Dim23, Dim23, Dim2, Dim3, m, n, k, l > &  b,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, m, n > &  a 
)

Definition at line 72 of file Ddg_times_Tensor4.hpp.

73 {
74 using TensorExpr = Ddg_times_Tensor4_2301_ijkl<A, B, T, U, Dim01, Dim23, Dim2,
75 Dim3, i, j, k, l, m, n>;
77 Dim3, i, j, k, l>(TensorExpr(a, b));
78}

◆ operator*() [384/391]

template<class A , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
auto FTensor::operator* ( const U &  d0,
const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a 
)

Definition at line 24 of file Ddg_times_generic.hpp.

25 {
26 auto TensorExpr
27 = [&a, &d0](const int N1, const int N2, const int N3, const int N4) {
28 return d0 * a(N1, N2, N3, N4);
29 };
30 return Ddg_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim01,
31 Dim23, i, j, k, l>(TensorExpr);
32 }

◆ operator*() [385/391]

template<class A , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_times_generic< A, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, k > FTensor::operator* ( const U &  d0,
const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a 
)

Definition at line 45 of file Dg_times_generic.hpp.

46 {
48 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
49 TensorExpr(a, d0));
50 }

◆ operator*() [386/391]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_times_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, i > FTensor::operator* ( const U &  d0,
const Tensor1_Expr< A, T, Dim, i > &  a 
)

Definition at line 44 of file Tensor1_times_generic.hpp.

45 {
48 TensorExpr(a, d0));
49 }

◆ operator*() [387/391]

template<class A , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< Tensor2_times_generic< A, T, U, Dim0, Dim1, i, j >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator* ( const U &  d0,
const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a 
)

Definition at line 38 of file Tensor2_times_generic.hpp.

39 {
42 j>(TensorExpr(a, d0));
43 }

◆ operator*() [388/391]

template<class A , class T , class U , int Dim, char i, char j>
auto FTensor::operator* ( const U &  d0,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

Definition at line 20 of file Tensor2_symmetric_times_generic.hpp.

21 {
22 auto TensorExpr = [&a, d0](const int N1, const int N2) {
23 return d0 * a.operator()(N1, N2);
24 };
25 return Tensor2_symmetric_Expr<decltype(TensorExpr),
26 typename promote<T, U>::V, Dim, i, j>(
27 TensorExpr);
28 }

◆ operator*() [389/391]

template<class A , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_times_generic< A, T, U, Dim0, Dim12, i, j, k >, typename promote< T, U >::V, Dim0, Dim12, i, j, k > FTensor::operator* ( const U &  d0,
const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a 
)

Definition at line 52 of file Tensor3_antisymmetric_times_generic.hpp.

54 {
55 using TensorExpr
58 Dim0, Dim12, i, j, k>(TensorExpr(a, d0));
59 }

◆ operator*() [390/391]

template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator* ( const U &  d0,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 25 of file Tensor3_times_generic.hpp.

27 {
28 auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3) {
29 return d0 * a.operator()(N1, N2, N3);
30 };
31 return Tensor3_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
32 Dim1, Dim2, i, j, k>(TensorExpr);
33 }

◆ operator*() [391/391]

template<class A , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator* ( const U &  d0,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 20 of file Tensor4_times_generic.hpp.

22 {
23 auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3,
24 const int N4) {
25 return d0 * a.operator()(N1, N2, N3, N4);
26 };
27 return Tensor4_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
28 Dim1, Dim2, Dim3, i, j, k, l>(TensorExpr);
29}

◆ operator+() [1/18]

template<class A , class B , class T , class U , int Dim01_0, int Dim23_0, int Dim01_1, int Dim23_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
Ddg_Expr< Ddg_plus_Ddg< A, B, T, U, Dim01_0, Dim23_0, Dim01_1, Dim23_1, i0, j0, k0, l0, i1, j1, k1, l1 >, typename promote< T, U >::V, Dim01_0, Dim23_0, i0, j0, k0, l0 > FTensor::operator+ ( const Ddg_Expr< A, T, Dim01_0, Dim23_0, i0, j0, k0, l0 > &  a,
const Ddg_Expr< B, U, Dim01_1, Dim23_1, i1, j1, k1, l1 > &  b 
)

Definition at line 66 of file Ddg_plus_Ddg.hpp.

68 {
69 using TensorExpr = Ddg_plus_Ddg<A, B, T, U, Dim01_0, Dim23_0, Dim01_1,
70 Dim23_1, i0, j0, k0, l0, i1, j1, k1, l1>;
71 static_assert(
72 !std::is_empty<TensorExpr>::value,
73 "Indexes or Dimensions are not compatible with the + operator");
75 i0, j0, k0, l0>(TensorExpr(a, b));
76 }

◆ operator+() [2/18]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_Expr< Dg_plus_Dg_210< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, Dim, i, j, k > FTensor::operator+ ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim, k, j, i > &  b 
)

Definition at line 99 of file Dg_plus_Dg.hpp.

101 {
104 i, j, k>(TensorExpr(a, b));
105 }

◆ operator+() [3/18]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_plus_Dg< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, k > FTensor::operator+ ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  b 
)

Definition at line 33 of file Dg_plus_Dg.hpp.

35 {
37 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
38 TensorExpr(a, b));
39 }

◆ operator+() [4/18]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_plus_Dg_10< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, k > FTensor::operator+ ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim01, Dim2, j, i, k > &  b 
)

Definition at line 67 of file Dg_plus_Dg.hpp.

69 {
71 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
72 TensorExpr(a, b));
73 }

◆ operator+() [5/18]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Riemann_plus_Riemann< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, l > FTensor::operator+ ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Riemann_Expr< B, U, Dim, i, j, k, l > &  b 
)

Definition at line 32 of file Riemann_plus_Riemann.hpp.

◆ operator+() [6/18]

template<class A , class B , class T , class U , char i, int Dim>
Tensor1_Expr< Tensor1_plus_Tensor1< A, B, T, U, Dim, i >, typename promote< T, U >::V, Dim, i > FTensor::operator+ ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b 
)

Definition at line 28 of file Tensor1_plus_Tensor1.hpp.

◆ operator+() [7/18]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_plus_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, i > FTensor::operator+ ( const Tensor1_Expr< A, T, Dim, i > &  a,
const U &  d0 
)

Definition at line 32 of file Tensor1_plus_generic.hpp.

◆ operator+() [8/18]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_plus_Tensor2< A, B, T, U, Dim0_0, Dim1_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, i0, j0 > FTensor::operator+ ( const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 60 of file Tensor2_plus_Tensor2.hpp.

62 {
63 using TensorExpr = Tensor2_plus_Tensor2<A, B, T, U, Dim0_0, Dim1_0, Dim0_1,
64 Dim1_1, i0, j0, i1, j1>;
65 static_assert(
66 !std::is_empty<TensorExpr>::value,
67 "Indexes or Dimensions are not compatible with the + operator");
69 i0, j0>(TensorExpr(a, b));
70 }

◆ operator+() [9/18]

template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_symmetric_plus_Tensor2< A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, Dim_0, i0, j0 > FTensor::operator+ ( const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b,
const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a 
)

Definition at line 83 of file Tensor2_symmetric_plus_Tensor2.hpp.

85 {
86 using TensorExpr
87 = Tensor2_symmetric_plus_Tensor2<A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0,
88 j0, i1, j1>;
89 static_assert(
90 !std::is_empty<TensorExpr>::value,
91 "Indexes or Dimensions are not compatible with the + operator");
93 i0, j0>(TensorExpr(a, b));
94 }

◆ operator+() [10/18]

template<class A , class T , class U , int Dim, char i, char j>
auto FTensor::operator+ ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const U &  d0 
)

Definition at line 9 of file Tensor2_symmetric_plus_generic.hpp.

10 {
11 auto TensorExpr = [&a, d0](const int N1, const int N2) {
12 return a.operator()(N1, N2) + d0;
13 };
14 return Tensor2_symmetric_Expr<decltype(TensorExpr),
15 typename promote<T, U>::V, Dim, i, j>(
16 TensorExpr);
17 }

◆ operator+() [11/18]

template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_symmetric_plus_Tensor2< A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, Dim_0, i0, j0 > FTensor::operator+ ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 60 of file Tensor2_symmetric_plus_Tensor2.hpp.

62 {
63 using TensorExpr
64 = Tensor2_symmetric_plus_Tensor2<A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0,
65 j0, i1, j1>;
66 static_assert(
67 !std::is_empty<TensorExpr>::value,
68 "Indexes or Dimensions are not compatible with the + operator");
70 i0, j0>(TensorExpr(a, b));
71 }

◆ operator+() [12/18]

template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_symmetric_plus_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, i0, j0 > FTensor::operator+ ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 63 of file Tensor2_symmetric_plus_Tensor2_symmetric.hpp.

65 {
66 using TensorExpr
67 = Tensor2_symmetric_plus_Tensor2_symmetric<A, B, T, U, Dim_0, Dim_1, i0,
68 j0, i1, j1>;
69 static_assert(
70 !std::is_empty<TensorExpr>::value,
71 "Indexes or Dimensions are not compatible with the + operator");
73 i0, j0>(TensorExpr(a, b));
74 }

◆ operator+() [13/18]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_plus_Tensor3_antisymmetric< A, B, T, U, Dim0, Dim12, i, j, k >, typename promote< T, U >::V, Dim0, Dim12, i, j, k > FTensor::operator+ ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &  b 
)

◆ operator+() [14/18]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
Tensor3_antisymmetric_Expr< Tensor3_antisymmetric_plus_Tensor3_antisymmetric_12< A, B, T, U, Dim0, Dim12, i, j, k >, typename promote< T, U >::V, Dim0, Dim12, i, j, k > FTensor::operator+ ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &  b 
)

◆ operator+() [15/18]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim0_1, int Dim1_1, int Dim2_1, char i0, char j0, char k0, char i1, char j1, char k1>
Tensor3_Expr< Tensor3_plus_Tensor3< A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1, Dim1_1, Dim2_1, i0, j0, k0, i1, j1, k1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > FTensor::operator+ ( const Tensor3_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > &  a,
const Tensor3_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, i1, j1, k1 > &  b 
)

Definition at line 164 of file Tensor3_plus_Tensor3.hpp.

166 {
167 using TensorExpr
168 = Tensor3_plus_Tensor3<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1,
169 Dim1_1, Dim2_1, i0, j0, k0, i1, j1, k1>;
170 static_assert(
171 !std::is_empty<TensorExpr>::value,
172 "Indexes or Dimensions are not compatible with the + operator");
174 Dim2_0, i0, j0, k0>(TensorExpr(a, b));
175 }

◆ operator+() [16/18]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim3_0, int Dim0_1, int Dim1_1, int Dim2_1, int Dim3_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
auto FTensor::operator+ ( const Tensor4_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, Dim3_0, i0, j0, k0, l0 > &  a,
const Tensor4_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, Dim3_1, i1, j1, k1, l1 > &  b 
)

Definition at line 35 of file Tensor4_plus_Tensor4.hpp.

38 {
39 using TensorExpr
40 = Tensor4_plus_Tensor4<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim3_0,
41 Dim0_1, Dim1_1, Dim2_1, Dim3_1, i0, j0, k0, l0,
42 i1, j1, k1, l1>;
44 Dim2_0, Dim3_0, i0, j0, k0, l0>(TensorExpr(a, b));
45 }

◆ operator+() [17/18]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_plus_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, i > FTensor::operator+ ( const U &  d0,
const Tensor1_Expr< A, T, Dim, i > &  a 
)

Definition at line 44 of file Tensor1_plus_generic.hpp.

45 {
48 TensorExpr(a, d0));
49 }

◆ operator+() [18/18]

template<class A , class T , class U , int Dim, char i, char j>
auto FTensor::operator+ ( const U &  d0,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

Definition at line 20 of file Tensor2_symmetric_plus_generic.hpp.

21 {
22 auto TensorExpr = [&a, d0](const int N1, const int N2) {
23 return a.operator()(N1, N2) + d0;
24 };
25 return Tensor2_symmetric_Expr<decltype(TensorExpr),
26 typename promote<T, U>::V, Dim, i, j>(
27 TensorExpr);
28 }

◆ operator-() [1/21]

template<class A , class T , int Dim01, int Dim23, char i, char j, char k, char l>
Ddg_Expr< minus_Ddg< A, T, Dim01, Dim23, i, j, k, l >, T, Dim01, Dim23, i, j, k, l > FTensor::operator- ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a)

Definition at line 26 of file minus_Ddg.hpp.

◆ operator-() [2/21]

template<class A , class B , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
Ddg_Expr< Ddg_minus_Ddg< A, B, T, U, Dim01, Dim23, i, j, k, l >, typename promote< T, U >::V, Dim01, Dim23, i, j, k, l > FTensor::operator- ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  b 
)

Definition at line 33 of file Ddg_minus_Ddg.hpp.

35 {
38 k, l>(TensorExpr(a, b));
39 }

◆ operator-() [3/21]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Tensor3_Expr< Dg_minus_Dg_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, Dim, i, j, k > FTensor::operator- ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim, k, j, i > &  b 
)

Definition at line 66 of file Dg_minus_Dg.hpp.

68 {
71 i, j, k>(TensorExpr(a, b));
72 }

◆ operator-() [4/21]

template<class A , class T , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< minus_Dg< A, T, Dim01, Dim2, i, j, k >, T, Dim01, Dim2, i, j, k > FTensor::operator- ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a)

Definition at line 23 of file minus_Dg.hpp.

24 {
25 using TensorExpr = minus_Dg<A, T, Dim01, Dim2, i, j, k>;
27 }

◆ operator-() [5/21]

template<class A , class B , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_minus_Dg< A, B, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, k > FTensor::operator- ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  b 
)

Definition at line 34 of file Dg_minus_Dg.hpp.

36 {
38 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
39 TensorExpr(a, b));
40 }

◆ operator-() [6/21]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Riemann_Expr< Riemann_minus_Riemann< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, j, k, l > FTensor::operator- ( const Riemann_Expr< A, T, Dim, i, j, k, l > &  a,
const Riemann_Expr< B, U, Dim, i, j, k, l > &  b 
)

Definition at line 32 of file Riemann_minus_Riemann.hpp.

◆ operator-() [7/21]

template<class A , class T , int Dim, char i>
Tensor1_Expr< minus_Tensor1< A, T, Dim, i >, T, Dim, i > FTensor::operator- ( const Tensor1_Expr< A, T, Dim, i > &  a)

Definition at line 19 of file minus_Tensor1.hpp.

20 {
21 using TensorExpr = minus_Tensor1<A, T, Dim, i>;
22 return Tensor1_Expr<TensorExpr, T, Dim, i>(TensorExpr(a));
23 }

◆ operator-() [8/21]

template<class A , class B , class T , class U , char i, int Dim>
Tensor1_Expr< Tensor1_minus_Tensor1< A, B, T, U, Dim, i >, typename promote< T, U >::V, Dim, i > FTensor::operator- ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b 
)

Definition at line 28 of file Tensor1_minus_Tensor1.hpp.

◆ operator-() [9/21]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_minus_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, i > FTensor::operator- ( const Tensor1_Expr< A, T, Dim, i > &  a,
const U &  d0 
)

Definition at line 32 of file Tensor1_minus_generic.hpp.

◆ operator-() [10/21]

template<class A , class T , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< minus_Tensor2< A, T, Dim0, Dim1, i, j >, T, Dim0, Dim1, i, j > FTensor::operator- ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a)

Definition at line 20 of file minus_Tensor2.hpp.

◆ operator-() [11/21]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_minus_Tensor2< A, B, T, U, Dim0_0, Dim1_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, i0, j0 > FTensor::operator- ( const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 60 of file Tensor2_minus_Tensor2.hpp.

62 {
63 using TensorExpr = Tensor2_minus_Tensor2<A, B, T, U, Dim0_0, Dim1_0,
64 Dim0_1, Dim1_1, i0, j0, i1, j1>;
65 static_assert(
66 !std::is_empty<TensorExpr>::value,
67 "Indexes or Dimensions are not compatible with the - operator");
69 i0, j0>(TensorExpr(a, b));
70 }

◆ operator-() [12/21]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_minus_Tensor2_symmetric< A, B, T, U, Dim0_0, Dim1_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, i0, j0 > FTensor::operator- ( const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 129 of file Tensor2_symmetric_minus_Tensor2.hpp.

131 {
132 using TensorExpr
133 = Tensor2_minus_Tensor2_symmetric<A, B, T, U, Dim0_0, Dim1_0, Dim_1, i0,
134 j0, i1, j1>;
135 static_assert(
136 !std::is_empty<TensorExpr>::value,
137 "Indexes or Dimensions are not compatible with the - operator");
139 i0, j0>(TensorExpr(a, b));
140 }

◆ operator-() [13/21]

template<class A , class T , int Dim, char i, char j>
Tensor2_symmetric_Expr< minus_Tensor2_symmetric< A, T, Dim, i, j >, T, Dim, i, j > FTensor::operator- ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a)

◆ operator-() [14/21]

template<class A , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< Tensor2_symmetric_minus_generic< A, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, j > FTensor::operator- ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const U &  d0 
)

◆ operator-() [15/21]

template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_Expr< Tensor2_symmetric_minus_Tensor2< A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, Dim_0, i0, j0 > FTensor::operator- ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 61 of file Tensor2_symmetric_minus_Tensor2.hpp.

63 {
64 using TensorExpr
65 = Tensor2_symmetric_minus_Tensor2<A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0,
66 j0, i1, j1>;
67 static_assert(
68 !std::is_empty<TensorExpr>::value,
69 "Indexes or Dimensions are not compatible with the - operator");
71 i0, j0>(TensorExpr(a, b));
72 }

◆ operator-() [16/21]

template<class A , class B , class T , class U , int Dim_0, int Dim_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_symmetric_minus_Tensor2_symmetric< A, B, T, U, Dim_0, Dim_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim_0, i0, j0 > FTensor::operator- ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_symmetric_Expr< B, U, Dim_1, i1, j1 > &  b 
)

Definition at line 63 of file Tensor2_symmetric_minus_Tensor2_symmetric.hpp.

65 {
66 using TensorExpr
67 = Tensor2_symmetric_minus_Tensor2_symmetric<A, B, T, U, Dim_0, Dim_1, i0,
68 j0, i1, j1>;
69 static_assert(
70 !std::is_empty<TensorExpr>::value,
71 "Indexes or Dimensions are not compatible with the - operator");
73 i0, j0>(TensorExpr(a, b));
74 }

◆ operator-() [17/21]

template<class A , class T , int Dim0, int Dim1, int Dim2, char i, char j, char k>
Tensor3_Expr< minus_Tensor3< A, T, Dim0, Dim1, Dim2, i, j, k >, T, Dim0, Dim1, Dim2, i, j, k > FTensor::operator- ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a)

Definition at line 315 of file Tensor3_Expr.hpp.

◆ operator-() [18/21]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim0_1, int Dim1_1, int Dim2_1, char i0, char j0, char k0, char i1, char j1, char k1>
Tensor3_Expr< Tensor3_minus_Tensor3< A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1, Dim1_1, Dim2_1, i0, j0, k0, i1, j1, k1 >, typename promote< T, U >::V, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > FTensor::operator- ( const Tensor3_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > &  a,
const Tensor3_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, i1, j1, k1 > &  b 
)

Definition at line 164 of file Tensor3_minus_Tensor3.hpp.

166 {
167 using TensorExpr
168 = Tensor3_minus_Tensor3<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1,
169 Dim1_1, Dim2_1, i0, j0, k0, i1, j1, k1>;
170 static_assert(
171 !std::is_empty<TensorExpr>::value,
172 "Indexes or Dimensions are not compatible with the - operator");
174 Dim2_0, i0, j0, k0>(TensorExpr(a, b));
175 }

◆ operator-() [19/21]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim3_0, int Dim0_1, int Dim1_1, int Dim2_1, int Dim3_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
auto FTensor::operator- ( const Tensor4_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, Dim3_0, i0, j0, k0, l0 > &  a,
const Tensor4_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, Dim3_1, i1, j1, k1, l1 > &  b 
)

Definition at line 35 of file Tensor4_minus_Tensor4.hpp.

38 {
39 using TensorExpr
40 = Tensor4_minus_Tensor4<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim3_0,
41 Dim0_1, Dim1_1, Dim2_1, Dim3_1, i0, j0, k0, l0,
42 i1, j1, k1, l1>;
44 Dim2_0, Dim3_0, i0, j0, k0, l0>(TensorExpr(a, b));
45 }

◆ operator-() [20/21]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< generic_minus_Tensor1< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, i > FTensor::operator- ( const U &  d0,
const Tensor1_Expr< A, T, Dim, i > &  a 
)

Definition at line 27 of file generic_minus_Tensor1.hpp.

◆ operator-() [21/21]

template<class A , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< generic_minus_Tensor2_symmetric< A, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, j > FTensor::operator- ( const U &  d0,
const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a 
)

◆ operator/() [1/9]

template<class A , class T , class U , int Dim01, int Dim23, char i, char j, char k, char l>
auto FTensor::operator/ ( const Ddg_Expr< A, T, Dim01, Dim23, i, j, k, l > &  a,
const U &  d0 
)

Definition at line 36 of file Ddg_times_generic.hpp.

37 {
38 auto TensorExpr
39 = [&a, &d0](const int N1, const int N2, const int N3, const int N4) {
40 return a(N1, N2, N3, N4) / d0;
41 };
42 return Ddg_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim01,
43 Dim23, i, j, k, l>(TensorExpr);
44 }

◆ operator/() [2/9]

template<class A , class T , class U , int Dim01, int Dim2, char i, char j, char k>
Dg_Expr< Dg_divide_generic< A, T, U, Dim01, Dim2, i, j, k >, typename promote< T, U >::V, Dim01, Dim2, i, j, k > FTensor::operator/ ( const Dg_Expr< A, T, Dim01, Dim2, i, j, k > &  a,
const U &  d0 
)

Definition at line 33 of file Dg_divide_generic.hpp.

34 {
36 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim01, Dim2, i, j, k>(
37 TensorExpr(a, d0));
38 }

◆ operator/() [3/9]

template<class A , class T , class U , int Dim, char i>
Tensor1_Expr< Tensor1_divide_generic< A, T, U, Dim, i >, typename promote< T, U >::V, Dim, i > FTensor::operator/ ( const Tensor1_Expr< A, T, Dim, i > &  a,
const U &  d0 
)

Definition at line 31 of file Tensor1_divide_generic.hpp.

◆ operator/() [4/9]

template<class A , class T , class U , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< Tensor2_divide_generic< A, T, U, Dim0, Dim1, i, j >, typename promote< T, U >::V, Dim0, Dim1, i, j > FTensor::operator/ ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const U &  d0 
)

Definition at line 28 of file Tensor2_divide_generic.hpp.

◆ operator/() [5/9]

template<class A , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< Tensor2_symmetric_divide_generic< A, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, j > FTensor::operator/ ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const U &  d0 
)

◆ operator/() [6/9]

template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator/ ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const U &  d0 
)

Definition at line 39 of file Tensor3_times_generic.hpp.

41 {
42 auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3) {
43 return a.operator()(N1, N2, N3) / d0;
44 };
45 return Tensor3_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
46 Dim1, Dim2, i, j, k>(TensorExpr);
47 }

◆ operator/() [7/9]

template<class A , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator/ ( const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a,
const U &  d0 
)

Definition at line 35 of file Tensor4_times_generic.hpp.

36 {
37 auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3,
38 const int N4) {
39 return a.operator()(N1, N2, N3) / d0;
40 };
41 return Tensor4_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
42 Dim1, Dim2, Dim3, i, j, k, l>(TensorExpr);
43}

◆ operator/() [8/9]

template<class A , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
auto FTensor::operator/ ( const U &  d0,
const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a 
)

Definition at line 53 of file Tensor3_times_generic.hpp.

55 {
56 auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3) {
57 return d0 / a.operator()(N1, N2, N3);
58 };
59 return Tensor3_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
60 Dim1, Dim2, i, j, k>(TensorExpr);
61 }

◆ operator/() [9/9]

template<class A , class T , class U , int Dim0, int Dim1, int Dim2, int Dim3, char i, char j, char k, char l>
auto FTensor::operator/ ( const U &  d0,
const Tensor4_Expr< A, T, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &  a 
)

Definition at line 49 of file Tensor4_times_generic.hpp.

51 {
52 auto TensorExpr = [&a, &d0](const int N1, const int N2, const int N3,
53 const int N4) {
54 return d0 / a.operator()(N1, N2, N3, N4);
55 };
56 return Tensor4_Expr<decltype(TensorExpr), typename promote<T, U>::V, Dim0,
57 Dim1, Dim2, Dim3, i, j, k, l>(TensorExpr);
58}

◆ operator<<() [1/3]

template<class T , int Tensor_Dim>
std::ostream & FTensor::operator<< ( std::ostream &  os,
const FTensor::Tensor1< T, Tensor_Dim > &  t 
)

Definition at line 95 of file Tensor1_value.hpp.

96 {
97 os << '[';
98 for (int i = 0; i + 1 < Tensor_Dim; ++i) {
99 os << t(i) << ',';
100 }
101 if (Tensor_Dim > 0) {
102 os << t(Tensor_Dim - 1);
103 }
104 os << ']';
105 return os;
106 }
constexpr double t
plate stiffness
Definition: plate.cpp:59

◆ operator<<() [2/3]

template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::ostream & FTensor::operator<< ( std::ostream &  os,
const FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &  t 
)

Definition at line 248 of file Tensor2_value.hpp.

250 {
251 os << '[';
252 for (int i = 0; i + 1 < Tensor_Dim0; ++i) {
254 os << ',';
255 }
256 if (Tensor_Dim0 > 0) {
257 FTensor::Tensor2_ostream_row(os, t, Tensor_Dim0 - 1);
258 }
259 os << ']';
260 return os;
261 }
std::ostream & Tensor2_ostream_row(std::ostream &os, const FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &t, const int &i)

◆ operator<<() [3/3]

template<class T , int Tensor_Dim>
std::ostream & FTensor::operator<< ( std::ostream &  os,
const FTensor::Tensor2_symmetric< T, Tensor_Dim > &  t 
)

Definition at line 271 of file Tensor2_symmetric_value.hpp.

272 {
273 os << '[';
274 for (int i = 0; i + 1 < Tensor_Dim; ++i) {
276 os << ',';
277 }
278 if (Tensor_Dim > 0) {
279 FTensor::Tensor2_symmetric_ostream_row(os, t, Tensor_Dim - 1);
280 }
281 os << ']';
282 return os;
283 }
std::ostream & Tensor2_symmetric_ostream_row(std::ostream &os, const FTensor::Tensor2_symmetric< T, Tensor_Dim > &t, const int &i)

◆ operator>>() [1/3]

template<class T , int Tensor_Dim>
std::istream & FTensor::operator>> ( std::istream &  is,
FTensor::Tensor1< T, Tensor_Dim > &  t 
)

Definition at line 109 of file Tensor1_value.hpp.

110 {
111 char c;
112 is >> c;
113 for (int i = 0; i + 1 < Tensor_Dim; ++i) {
114 is >> t(i) >> c;
115 }
116 if (Tensor_Dim > 0) {
117 is >> t(Tensor_Dim - 1);
118 }
119 is >> c;
120 return is;
121 }
const double c
speed of light (cm/ns)

◆ operator>>() [2/3]

template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::istream & FTensor::operator>> ( std::istream &  is,
FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &  t 
)

Definition at line 287 of file Tensor2_value.hpp.

288 {
289 char c;
290 is >> c;
291 for (int i = 0; i + 1 < Tensor_Dim0; ++i) {
293 is >> c;
294 }
295 if (Tensor_Dim0 > 0) {
296 FTensor::Tensor2_istream_row(is, t, Tensor_Dim0 - 1);
297 }
298 is >> c;
299 return is;
300 }
std::istream & Tensor2_istream_row(std::istream &is, FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &t, const int &i)

◆ operator>>() [3/3]

template<class T , int Tensor_Dim>
std::istream & FTensor::operator>> ( std::istream &  is,
FTensor::Tensor2_symmetric< T, Tensor_Dim > &  t 
)

Definition at line 309 of file Tensor2_symmetric_value.hpp.

310 {
311 char c;
312 is >> c;
313 for (int i = 0; i + 1 < Tensor_Dim; ++i) {
315 is >> c;
316 }
317 if (Tensor_Dim > 0) {
318 FTensor::Tensor2_symmetric_istream_row(is, t, Tensor_Dim - 1);
319 }
320 is >> c;
321 return is;
322 }
std::istream & Tensor2_symmetric_istream_row(std::istream &is, FTensor::Tensor2_symmetric< T, Tensor_Dim > &t, const int &i)

◆ operator^() [1/8]

template<class A , class B , class T , class U , int Dim, int Dim23, char i, char j, char k, char l, char m, char n>
Ddg_Expr< Ddg_carat_Ddg_13< A, B, T, U, Dim, Dim23, i, j, k, l, m, n >, typename promote< T, U >::V, Dim, Dim23, i, k, m, n > FTensor::operator^ ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim23, j, l, m, n > &  b 
)

Definition at line 59 of file Ddg_carat_Ddg.hpp.

61 {
62 using TensorExpr
65 n>(TensorExpr(a, b));
66 }

◆ operator^() [2/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_carat_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, k > FTensor::operator^ ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b 
)

◆ operator^() [3/8]

template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< Tensor1_carat_Tensor1< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, j > FTensor::operator^ ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, j > &  b 
)

◆ operator^() [4/8]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
auto FTensor::operator^ ( const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 152 of file Tensor2_carat_Tensor2.hpp.

154 {
155 using TensorExpr = Tensor2_carat_Tensor2<A, B, T, U, Dim0_0, Dim1_0,
156 Dim0_1, Dim1_1, i0, j0, i1, j1>;
157 static_assert(
158 !std::is_empty<TensorExpr>::value,
159 "Indexes or Dimensions are not compatible with the ^ operator");
160
161 // Definition of Helper constexpr variables
162 constexpr int Dim = (i0 == i1 || i0 == j1) ? Dim1_0 : Dim0_0;
163 constexpr char i = (i0 == i1 || i0 == j1) ? j0 : i0,
164 j = (i1 == i0 || i1 == j0) ? j1 : i1;
165
167 i, j>(TensorExpr(a, b));
168 }

◆ operator^() [5/8]

template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
auto FTensor::operator^ ( const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b,
const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a 
)

Definition at line 174 of file Tensor2_symmetric_carat_Tensor2.hpp.

176 {
177 using TensorExpr
178 = Tensor2_symmetric_carat_Tensor2<A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0,
179 j0, i1, j1>;
180 static_assert(
181 !std::is_empty<TensorExpr>::value,
182 "Indexes or Dimensions are not compatible with the ^ operator");
183
184 // Definition of Helper constexpr variables
185 constexpr char i = (i0 == i1 || i0 == j1) ? j0 : i0,
186 j = (i1 == i0 || i1 == j0) ? j1 : i1;
187
189 i, j>(TensorExpr(a, b));
190 }

◆ operator^() [6/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Ddg_Expr< Tensor2_symmetric_carat_Tensor2_symmetric< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, j, k, l > FTensor::operator^ ( const Tensor2_symmetric_Expr< A, T, Dim, i, k > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b 
)

◆ operator^() [7/8]

template<class A , class B , class T , class U , int Dim_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
auto FTensor::operator^ ( const Tensor2_symmetric_Expr< A, T, Dim_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 152 of file Tensor2_symmetric_carat_Tensor2.hpp.

154 {
155 using TensorExpr
156 = Tensor2_symmetric_carat_Tensor2<A, B, T, U, Dim_0, Dim0_1, Dim1_1, i0,
157 j0, i1, j1>;
158 static_assert(
159 !std::is_empty<TensorExpr>::value,
160 "Indexes or Dimensions are not compatible with the ^ operator");
161
162 // Definition of Helper constexpr variables
163 constexpr char i = (i0 == i1 || i0 == j1) ? j0 : i0,
164 j = (i1 == i0 || i1 == j0) ? j1 : i1;
165
167 i, j>(TensorExpr(a, b));
168 }

◆ operator^() [8/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_carat_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, k > FTensor::operator^ ( const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b,
const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a 
)

Definition at line 75 of file Ddg_carat_Tensor2_symmetric.hpp.

77 {
78 using TensorExpr
81 i, k>(TensorExpr(a, b));
82 }

◆ operator|() [1/2]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_or_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, k > FTensor::operator| ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b 
)

◆ operator|() [2/2]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Tensor2_symmetric_Expr< Ddg_or_Tensor2_symmetric_13< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, i, k > FTensor::operator| ( const Tensor2_symmetric_Expr< B, U, Dim, j, l > &  b,
const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a 
)

Definition at line 75 of file Ddg_or_Tensor2_symmetric.hpp.

77 {
78 using TensorExpr
81 i, k>(TensorExpr(a, b));
82 }

◆ operator||() [1/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
Ddg_Expr< Ddg_or_Ddg< A, B, T, U, Dim, i, j, k, l >, typename promote< T, U >::V, Dim, Dim, i, k, j, l > FTensor::operator|| ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, l, k, j > &  b 
)

Definition at line 33 of file Ddg_or_Ddg.hpp.

35 {
38 l>(TensorExpr(a, b));
39 }

◆ operator||() [2/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Dg_Expr< Dg_or_Dg_12< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, j, k, i > FTensor::operator|| ( const Dg_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim, i, k, j > &  b 
)

Definition at line 32 of file Dg_or_Dg.hpp.

34 {
37 TensorExpr(a, b));
38 }

◆ operator||() [3/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Dg_Expr< Dg_or_Dg_02< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, j, k, i > FTensor::operator|| ( const Dg_Expr< A, T, Dim, Dim, j, i, k > &  a,
const Dg_Expr< B, U, Dim, Dim, k, i, j > &  b 
)

Definition at line 64 of file Dg_or_Dg.hpp.

66 {
69 TensorExpr(a, b));
70 }

◆ operator||() [4/8]

template<class A , class B , class T , class U , int Dim, char i, char j>
Tensor2_symmetric_Expr< Tensor1_or_Tensor1< A, B, T, U, Dim, i, j >, typename promote< T, U >::V, Dim, i, j > FTensor::operator|| ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, j > &  b 
)

Definition at line 28 of file Tensor1_or_Tensor1.hpp.

◆ operator||() [5/8]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim0_1, int Dim1_1, char i0, char j0, char i1, char j1>
Tensor2_symmetric_Expr< Tensor2_or_Tensor2< A, B, T, U, Dim0_0, Dim1_0, Dim0_1, Dim1_1, i0, j0, i1, j1 >, typename promote< T, U >::V, Dim0_0, i0, j0 > FTensor::operator|| ( const Tensor2_Expr< A, T, Dim0_0, Dim1_0, i0, j0 > &  a,
const Tensor2_Expr< B, U, Dim0_1, Dim1_1, i1, j1 > &  b 
)

Definition at line 61 of file Tensor2_or_Tensor2.hpp.

63 {
64 using TensorExpr = Tensor2_or_Tensor2<A, B, T, U, Dim0_0, Dim1_0, Dim0_1,
65 Dim1_1, i0, j0, i1, j1>;
66 static_assert(
67 !std::is_empty<TensorExpr>::value,
68 "Indexes or Dimensions are not compatible with the || operator");
70 Dim0_0, i0, j0>(TensorExpr(a, b));
71 }

◆ operator||() [6/8]

template<class A , class B , class T , class U , int Dim, char i, char j, char k>
Dg_Expr< Tensor3_antisymmetric_or_Tensor3_antisymmetric< A, B, T, U, Dim, i, j, k >, typename promote< T, U >::V, Dim, Dim, i, k, j > FTensor::operator|| ( const Tensor3_antisymmetric_Expr< A, T, Dim, Dim, i, j, k > &  a,
const Tensor3_antisymmetric_Expr< B, U, Dim, Dim, k, j, i > &  b 
)

◆ operator||() [7/8]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim0_1, int Dim1_1, int Dim2_1, char i0, char j0, char k0, char i1, char j1, char k1>
auto FTensor::operator|| ( const Tensor3_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, i0, j0, k0 > &  a,
const Tensor3_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, i1, j1, k1 > &  b 
)

Definition at line 90 of file Tensor3_or_Tensor3.hpp.

92 {
93 using TensorExpr =
94 Tensor3_or_Tensor3<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim0_1, Dim1_1,
95 Dim2_1, i0, j0, k0, i1, j1, k1>;
96 static_assert(
97 !std::is_empty<TensorExpr>::value,
98 "Indexes or Dimensions are not compatible with the || operator");
99
100 // Definition of Helper constexpr variables
101 constexpr char i = (k0 == i1 || k0 == j1) ? ((i0 == i1) ? j0 : i0) : i0;
102 constexpr char j = (k0 == i1 || k0 == j1) ? k0 : j0;
103 constexpr char k = (k0 == i1 || k0 == j1) ? ((i0 == i1) ? i0 : j0) : k0;
104
105 return Dg_Expr<TensorExpr, typename promote<T, U>::V, Dim0_0, Dim1_0, i,
106 j, k>(TensorExpr(a, b));
107 }

◆ operator||() [8/8]

template<class A , class B , class T , class U , int Dim0_0, int Dim1_0, int Dim2_0, int Dim3_0, int Dim0_1, int Dim1_1, int Dim2_1, int Dim3_1, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
auto FTensor::operator|| ( const Tensor4_Expr< A, T, Dim0_0, Dim1_0, Dim2_0, Dim3_0, i0, j0, k0, l0 > &  a,
const Tensor4_Expr< B, U, Dim0_1, Dim1_1, Dim2_1, Dim3_1, i1, j1, k1, l1 > &  b 
)

Definition at line 39 of file Tensor4_or_Tensor4.hpp.

42 {
43 using TensorExpr =
44 Tensor4_or_Tensor4<A, B, T, U, Dim0_0, Dim1_0, Dim2_0, Dim3_0, Dim0_1,
45 Dim1_1, Dim2_1, Dim3_1, i0, j0, k0, l0, i1, j1, k1,
46 l1>;
47 static_assert(
48 !std::is_empty<TensorExpr>::value,
49 "Indexes or Dimensions are not compatible with the || operator");
50
51 return Ddg_Expr<TensorExpr, typename promote<T, U>::V, Dim0_0, Dim2_1, i0,
52 j0, k0, l0>(TensorExpr(a, b));
53 }

◆ permute() [1/5]

template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim1_0, int Dim1_1, char i0, char j0, char i1, char j1>
U FTensor::permute ( const Tensor2_Expr< A, T, Dim0_0, Dim0_1, i0, j0 > &  ,
const Tensor2_Expr< B, U, Dim1_0, Dim1_1, i1, j1 > &  rhs,
const int  N0,
const int  N1 
)

Definition at line 11 of file permute.hpp.

14 {
16 }
U eval(const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &rhs, const int N0, const int N1)

◆ permute() [2/5]

template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim1_01, int Dim1_2, char i0, char j0, char k0, char i1, char j1, char k1>
U FTensor::permute ( const Tensor3_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, i0, j0, k0 > &  ,
const Dg_Expr< B, U, Dim1_01, Dim1_2, i1, j1, k1 > &  rhs,
const int  N0,
const int  N1,
const int  N2 
)

Definition at line 32 of file permute.hpp.

34 {
36 N2);
37 }
U eval(const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &rhs, const int N0, const int N1, const int N2)

◆ permute() [3/5]

template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim1_0, int Dim1_1, int Dim1_2, char i0, char j0, char k0, char i1, char j1, char k1>
U FTensor::permute ( const Tensor3_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, i0, j0, k0 > &  ,
const Tensor3_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, i1, j1, k1 > &  rhs,
const int  N0,
const int  N1,
const int  N2 
)

Definition at line 21 of file permute.hpp.

24 {
26 N2);
27 }

◆ permute() [4/5]

template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim0_3, int Dim1_01, int Dim1_23, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
U FTensor::permute ( const Tensor4_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, Dim0_3, i0, j0, k0, l0 > &  ,
const Ddg_Expr< B, U, Dim1_01, Dim1_23, i1, j1, k1, l1 > &  rhs,
const int  N0,
const int  N1,
const int  N2,
const int  N3 
)

Definition at line 56 of file permute.hpp.

59 {
61 rhs, N0, N1, N2, N3);
62 }
U eval(const Tensor4_Expr< B, U, Dim0, Dim1, Dim2, Dim3, i, j, k, l > &rhs, const int N0, const int N1, const int N2, const int N3)

◆ permute() [5/5]

template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim0_2, int Dim0_3, int Dim1_0, int Dim1_1, int Dim1_2, int Dim1_3, char i0, char j0, char k0, char l0, char i1, char j1, char k1, char l1>
U FTensor::permute ( const Tensor4_Expr< A, T, Dim0_0, Dim0_1, Dim0_2, Dim0_3, i0, j0, k0, l0 > &  ,
const Tensor4_Expr< B, U, Dim1_0, Dim1_1, Dim1_2, Dim1_3, i1, j1, k1, l1 > &  rhs,
const int  N0,
const int  N1,
const int  N2,
const int  N3 
)

Definition at line 43 of file permute.hpp.

◆ permute_ref()

template<class A , class T , class B , class U , int Dim0_0, int Dim0_1, int Dim1_0, int Dim1_1, char i0, char j0, char i1, char j1>
U & FTensor::permute_ref ( const Tensor2_Expr< A, T, Dim0_0, Dim0_1, i0, j0 > &  ,
const Tensor2_Expr< B, U, Dim1_0, Dim1_1, i1, j1 > &  rhs,
const int  N0,
const int  N1 
)

Definition at line 66 of file permute.hpp.

68 {
70 }
U & eval_ref(const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &rhs, const int N0, const int N1)

◆ T1_divide_equals_generic() [1/2]

template<class A , class U >
void FTensor::T1_divide_equals_generic ( A iter,
const U &  u,
const Number< 1 > &   
)

Definition at line 273 of file Tensor1_Expr_equals.hpp.

274 {
275 iter(0) /= u;
276 }

◆ T1_divide_equals_generic() [2/2]

template<class A , class U , int Current_Dim>
void FTensor::T1_divide_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim > &   
)

Definition at line 266 of file Tensor1_Expr_equals.hpp.

267 {
268 iter(Current_Dim - 1) /= u;
270 }
void T1_divide_equals_generic(A &iter, const U &u, const Number< Current_Dim > &)

◆ T1_equals_addolc_left_T1() [1/2]

template<class A , class B , class U , int Dim, char i>
void FTensor::T1_equals_addolc_left_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< 1 > &   
)
inline

Definition at line 60 of file Tensor1_Expr_equals.hpp.

62 {
63 iter(0) <<= result(0);
64 }

◆ T1_equals_addolc_left_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int Current_Dim>
void FTensor::T1_equals_addolc_left_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< Current_Dim > &   
)
inline

Definition at line 51 of file Tensor1_Expr_equals.hpp.

53 {
54 iter(Current_Dim - 1) <<= result(Current_Dim - 1);
56 }
void T1_equals_addolc_left_T1(A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)

◆ T1_equals_addolc_right_T1() [1/2]

template<class A , class B , class U , int Dim, char i>
void FTensor::T1_equals_addolc_right_T1 ( A iter,
Tensor1_Expr< B, U, Dim, i result,
const Number< 1 > &   
)
inline

Definition at line 89 of file Tensor1_Expr_equals.hpp.

91 {
92 iter(0) >>= result(0);
93 }

◆ T1_equals_addolc_right_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int Current_Dim>
void FTensor::T1_equals_addolc_right_T1 ( A iter,
Tensor1_Expr< B, U, Dim, i result,
const Number< Current_Dim > &   
)
inline

Definition at line 80 of file Tensor1_Expr_equals.hpp.

82 {
83 iter(Current_Dim - 1) >>= result(Current_Dim - 1);
85 }
void T1_equals_addolc_right_T1(A &iter, Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)

◆ T1_equals_generic() [1/2]

template<class A , class U >
void FTensor::T1_equals_generic ( A iter,
const U &  u,
const Number< 1 > &   
)

Definition at line 174 of file Tensor1_Expr_equals.hpp.

175 {
176 iter(0) = u;
177 }

◆ T1_equals_generic() [2/2]

template<class A , class U , int Current_Dim>
void FTensor::T1_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim > &   
)

Definition at line 167 of file Tensor1_Expr_equals.hpp.

168 {
169 iter(Current_Dim - 1) = u;
171 }
void T1_equals_generic(A &iter, const U &u, const Number< Current_Dim > &)

◆ T1_equals_T1() [1/2]

template<class A , class B , class U , int Dim, char i>
void FTensor::T1_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< 1 > &   
)

Definition at line 21 of file Tensor1_Expr_equals.hpp.

23 {
24 iter(0) = result(0);
25 }

◆ T1_equals_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int Current_Dim>
void FTensor::T1_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< Current_Dim > &   
)

Definition at line 13 of file Tensor1_Expr_equals.hpp.

15 {
16 iter(Current_Dim - 1) = result(Current_Dim - 1);
18 }
void T1_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)

◆ T1_minus_equals_generic() [1/2]

template<class A , class U >
void FTensor::T1_minus_equals_generic ( A iter,
const U &  u,
const Number< 1 > &   
)

Definition at line 223 of file Tensor1_Expr_equals.hpp.

224 {
225 iter(0) -= u;
226 }

◆ T1_minus_equals_generic() [2/2]

template<class A , class U , int Current_Dim>
void FTensor::T1_minus_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim > &   
)

Definition at line 216 of file Tensor1_Expr_equals.hpp.

217 {
218 iter(Current_Dim - 1) -= u;
220 }
void T1_minus_equals_generic(A &iter, const U &u, const Number< Current_Dim > &)

◆ T1_minus_equals_T1() [1/2]

template<class A , class B , class U , int Dim, char i>
void FTensor::T1_minus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< 1 > &   
)

Definition at line 143 of file Tensor1_Expr_equals.hpp.

145 {
146 iter(0) -= result(0);
147 }

◆ T1_minus_equals_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int Current_Dim>
void FTensor::T1_minus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< Current_Dim > &   
)

Definition at line 135 of file Tensor1_Expr_equals.hpp.

137 {
138 iter(Current_Dim - 1) -= result(Current_Dim - 1);
140 }
void T1_minus_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)

◆ T1_plus_equals_generic() [1/2]

template<class A , class U >
void FTensor::T1_plus_equals_generic ( A iter,
const U &  u,
const Number< 1 > &   
)

Definition at line 198 of file Tensor1_Expr_equals.hpp.

199 {
200 iter(0) += u;
201 }

◆ T1_plus_equals_generic() [2/2]

template<class A , class U , int Current_Dim>
void FTensor::T1_plus_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim > &   
)

Definition at line 191 of file Tensor1_Expr_equals.hpp.

192 {
193 iter(Current_Dim - 1) += u;
195 }
void T1_plus_equals_generic(A &iter, const U &u, const Number< Current_Dim > &)

◆ T1_plus_equals_T1() [1/2]

template<class A , class B , class U , int Dim, char i>
void FTensor::T1_plus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< 1 > &   
)

Definition at line 116 of file Tensor1_Expr_equals.hpp.

118 {
119 iter(0) += result(0);
120 }

◆ T1_plus_equals_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int Current_Dim>
void FTensor::T1_plus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i result,
const Number< Current_Dim > &   
)

Definition at line 108 of file Tensor1_Expr_equals.hpp.

110 {
111 iter(Current_Dim - 1) += result(Current_Dim - 1);
113 }
void T1_plus_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim, i > result, const Number< Current_Dim > &)

◆ T1_times_equals_generic() [1/2]

template<class A , class U >
void FTensor::T1_times_equals_generic ( A iter,
const U &  u,
const Number< 1 > &   
)

Definition at line 248 of file Tensor1_Expr_equals.hpp.

249 {
250 iter(0) *= u;
251 }

◆ T1_times_equals_generic() [2/2]

template<class A , class U , int Current_Dim>
void FTensor::T1_times_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim > &   
)

Definition at line 241 of file Tensor1_Expr_equals.hpp.

242 {
243 iter(Current_Dim - 1) *= u;
245 }
void T1_times_equals_generic(A &iter, const U &u, const Number< Current_Dim > &)

◆ T1_times_T1() [1/2]

template<class A , class B , class T , class U , int Dim, char i>
promote< T, U >::V FTensor::T1_times_T1 ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b,
const Number< 1 > &   
)

Definition at line 22 of file Tensor1_times_Tensor1.hpp.

24 {
25 return a(0) * b(0);
26 }

◆ T1_times_T1() [2/2]

template<class A , class B , class T , class U , int Dim, char i, int Current_Dim>
promote< T, U >::V FTensor::T1_times_T1 ( const Tensor1_Expr< A, T, Dim, i > &  a,
const Tensor1_Expr< B, U, Dim, i > &  b,
const Number< Current_Dim > &   
)

Definition at line 13 of file Tensor1_times_Tensor1.hpp.

15 {
16 return a(Current_Dim - 1) * b(Current_Dim - 1)
18 }

◆ T2_times_switched_T2() [1/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote< T, U >::V FTensor::T2_times_switched_T2 ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 89 of file Tensor2_times_Tensor2.hpp.

92 {
93 return a(0, 0) * b(0, 0);
94 }

◆ T2_times_switched_T2() [2/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim1>
promote< T, U >::V FTensor::T2_times_switched_T2 ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 77 of file Tensor2_times_Tensor2.hpp.

80 {
81 return a(0, Current_Dim1 - 1) * b(Current_Dim1 - 1, 0)
84 }

◆ T2_times_switched_T2() [3/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V FTensor::T2_times_switched_T2 ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim1, Dim0, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 63 of file Tensor2_times_Tensor2.hpp.

67 {
68 return a(Current_Dim0 - 1, Current_Dim1 - 1)
69 * b(Current_Dim1 - 1, Current_Dim0 - 1)
72 }

◆ T2_times_T2() [1/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j>
promote< T, U >::V FTensor::T2_times_T2 ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 42 of file Tensor2_times_Tensor2.hpp.

45 {
46 return a(0, 0) * b(0, 0);
47 }

◆ T2_times_T2() [2/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim1>
promote< T, U >::V FTensor::T2_times_T2 ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 31 of file Tensor2_times_Tensor2.hpp.

34 {
35 return a(0, Current_Dim1 - 1) * b(0, Current_Dim1 - 1)
37 }

◆ T2_times_T2() [3/3]

template<class A , class B , class T , class U , int Dim0, int Dim1, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V FTensor::T2_times_T2 ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
const Tensor2_Expr< B, U, Dim0, Dim1, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 18 of file Tensor2_times_Tensor2.hpp.

21 {
22 return a(Current_Dim0 - 1, Current_Dim1 - 1)
23 * b(Current_Dim0 - 1, Current_Dim1 - 1)
26 }

◆ T2rhs0_divide_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs0_divide_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 517 of file Tensor1_Expr_equals.hpp.

519 {
520 iter(N, 0) /= u;
521 }
const int N
Definition: speed_test.cpp:3

◆ T2rhs0_divide_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs0_divide_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 509 of file Tensor1_Expr_equals.hpp.

511 {
512 iter(N, Current_Dim - 1) /= u;
514 }
void T2rhs0_divide_equals_generic(A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs0_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs0_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 409 of file Tensor1_Expr_equals.hpp.

411 {
412 iter(N, 0) = u;
413 }

◆ T2rhs0_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs0_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 401 of file Tensor1_Expr_equals.hpp.

403 {
404 iter(N, Current_Dim - 1) = u;
406 }
void T2rhs0_equals_generic(A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs0_equals_T1() [1/2]

template<class A , class B , class U , int Dim1, char i, int N>
void FTensor::T2rhs0_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 300 of file Tensor1_Expr_equals.hpp.

302 {
303 iter(N, 0) = result(0);
304 }

◆ T2rhs0_equals_T1() [2/2]

template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void FTensor::T2rhs0_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 292 of file Tensor1_Expr_equals.hpp.

294 {
295 iter(N, Current_Dim - 1) = result(Current_Dim - 1);
297 }
void T2rhs0_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs0_minus_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs0_minus_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 463 of file Tensor1_Expr_equals.hpp.

465 {
466 iter(N, 0) -= u;
467 }

◆ T2rhs0_minus_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs0_minus_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 455 of file Tensor1_Expr_equals.hpp.

457 {
458 iter(N, Current_Dim - 1) -= u;
460 }
void T2rhs0_minus_equals_generic(A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs0_minus_equals_T1() [1/2]

template<class A , class B , class U , int Dim1, char i, int N>
void FTensor::T2rhs0_minus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 374 of file Tensor1_Expr_equals.hpp.

376 {
377 iter(N, 0) -= result(0);
378 }

◆ T2rhs0_minus_equals_T1() [2/2]

template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void FTensor::T2rhs0_minus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 365 of file Tensor1_Expr_equals.hpp.

367 {
368 iter(N, Current_Dim - 1) -= result(Current_Dim - 1);
370 }
void T2rhs0_minus_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs0_plus_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs0_plus_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 436 of file Tensor1_Expr_equals.hpp.

438 {
439 iter(N, 0) += u;
440 }

◆ T2rhs0_plus_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs0_plus_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 428 of file Tensor1_Expr_equals.hpp.

430 {
431 iter(N, Current_Dim - 1) += u;
433 }
void T2rhs0_plus_equals_generic(A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs0_plus_equals_T1() [1/2]

template<class A , class B , class U , int Dim1, char i, int N>
void FTensor::T2rhs0_plus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 337 of file Tensor1_Expr_equals.hpp.

339 {
340 iter(N, 0) += result(0);
341 }

◆ T2rhs0_plus_equals_T1() [2/2]

template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void FTensor::T2rhs0_plus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 328 of file Tensor1_Expr_equals.hpp.

330 {
331 iter(N, Current_Dim - 1) += result(Current_Dim - 1);
333 }
void T2rhs0_plus_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs0_times_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs0_times_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 490 of file Tensor1_Expr_equals.hpp.

492 {
493 iter(N, 0) *= u;
494 }

◆ T2rhs0_times_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs0_times_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 482 of file Tensor1_Expr_equals.hpp.

484 {
485 iter(N, Current_Dim - 1) *= u;
487 }
void T2rhs0_times_equals_generic(A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs1_divide_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs1_divide_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 763 of file Tensor1_Expr_equals.hpp.

765 {
766 iter(0, N) /= u;
767 }

◆ T2rhs1_divide_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs1_divide_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 755 of file Tensor1_Expr_equals.hpp.

757 {
758 iter(Current_Dim - 1, N) /= u;
760 }
void T2rhs1_divide_equals_generic(A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs1_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs1_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 655 of file Tensor1_Expr_equals.hpp.

657 {
658 iter(0, N) = u;
659 }

◆ T2rhs1_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs1_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 647 of file Tensor1_Expr_equals.hpp.

649 {
650 iter(Current_Dim - 1, N) = u;
652 }
void T2rhs1_equals_generic(A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs1_equals_T1() [1/2]

template<class A , class B , class U , int Dim1, char i, int N>
void FTensor::T2rhs1_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 546 of file Tensor1_Expr_equals.hpp.

548 {
549 iter(0, N) = result(0);
550 }

◆ T2rhs1_equals_T1() [2/2]

template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void FTensor::T2rhs1_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 538 of file Tensor1_Expr_equals.hpp.

540 {
541 iter(Current_Dim - 1, N) = result(Current_Dim - 1);
543 }
void T2rhs1_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs1_minus_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs1_minus_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 709 of file Tensor1_Expr_equals.hpp.

711 {
712 iter(0, N) -= u;
713 }

◆ T2rhs1_minus_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs1_minus_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 701 of file Tensor1_Expr_equals.hpp.

703 {
704 iter(Current_Dim - 1, N) -= u;
706 }
void T2rhs1_minus_equals_generic(A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs1_minus_equals_T1() [1/2]

template<class A , class B , class U , int Dim1, char i, int N>
void FTensor::T2rhs1_minus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 620 of file Tensor1_Expr_equals.hpp.

622 {
623 iter(0, N) -= result(0);
624 }

◆ T2rhs1_minus_equals_T1() [2/2]

template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void FTensor::T2rhs1_minus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 611 of file Tensor1_Expr_equals.hpp.

613 {
614 iter(Current_Dim - 1, N) -= result(Current_Dim - 1);
616 }
void T2rhs1_minus_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs1_plus_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs1_plus_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 682 of file Tensor1_Expr_equals.hpp.

684 {
685 iter(0, N) += u;
686 }

◆ T2rhs1_plus_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs1_plus_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 674 of file Tensor1_Expr_equals.hpp.

676 {
677 iter(Current_Dim - 1, N) += u;
679 }
void T2rhs1_plus_equals_generic(A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs1_plus_equals_T1() [1/2]

template<class A , class B , class U , int Dim1, char i, int N>
void FTensor::T2rhs1_plus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 583 of file Tensor1_Expr_equals.hpp.

585 {
586 iter(0, N) += result(0);
587 }

◆ T2rhs1_plus_equals_T1() [2/2]

template<class A , class B , class U , int Dim1, char i, int N, int Current_Dim>
void FTensor::T2rhs1_plus_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim1, i > &  result,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 574 of file Tensor1_Expr_equals.hpp.

576 {
577 iter(Current_Dim - 1, N) += result(Current_Dim - 1);
579 }
void T2rhs1_plus_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim1, i > &result, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2rhs1_times_equals_generic() [1/2]

template<class A , class U , int N>
void FTensor::T2rhs1_times_equals_generic ( A iter,
const U &  u,
const Number< N > &  ,
const Number< 1 > &   
)

Definition at line 736 of file Tensor1_Expr_equals.hpp.

738 {
739 iter(0, N) *= u;
740 }

◆ T2rhs1_times_equals_generic() [2/2]

template<class A , class U , int N, int Current_Dim>
void FTensor::T2rhs1_times_equals_generic ( A iter,
const U &  u,
const Number< N > &  N1,
const Number< Current_Dim > &   
)

Definition at line 728 of file Tensor1_Expr_equals.hpp.

730 {
731 iter(Current_Dim - 1, N) *= u;
733 }
void T2rhs1_times_equals_generic(A &iter, const U &u, const Number< N > &N1, const Number< Current_Dim > &)

◆ T2s_and_equals_T2s() [1/3]

template<class A , class B , class U , int Dim, char i, char j>
void FTensor::T2s_and_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 243 of file Tensor2_symmetric_Expr_equals.hpp.

246 {
247 iter(0, 0) *= result(0, 0);
248 }

◆ T2s_and_equals_T2s() [2/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void FTensor::T2s_and_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 232 of file Tensor2_symmetric_Expr_equals.hpp.

235 {
236 iter(0, Current_Dim1 - 1) *= result(0, Current_Dim1 - 1);
239 }
void T2s_and_equals_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ T2s_and_equals_T2s() [3/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void FTensor::T2s_and_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 218 of file Tensor2_symmetric_Expr_equals.hpp.

222 {
223 iter(Current_Dim0 - 1, Current_Dim1 - 1)
224 *= result(Current_Dim0 - 1, Current_Dim1 - 1);
227 }

◆ T2s_divide_equals_generic() [1/3]

template<class A , class U >
void FTensor::T2s_divide_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 467 of file Tensor2_symmetric_Expr_equals.hpp.

469 {
470 iter(0, 0) /= u;
471 }

◆ T2s_divide_equals_generic() [2/3]

template<class A , class U , int Current_Dim1>
void FTensor::T2s_divide_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 458 of file Tensor2_symmetric_Expr_equals.hpp.

460 {
461 iter(0, Current_Dim1 - 1) /= u;
464 }
void T2s_divide_equals_generic(A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ T2s_divide_equals_generic() [3/3]

template<class A , class U , int Current_Dim0, int Current_Dim1>
void FTensor::T2s_divide_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 449 of file Tensor2_symmetric_Expr_equals.hpp.

451 {
452 iter(Current_Dim0 - 1, Current_Dim1 - 1) /= u;
455 }

◆ T2s_equals_adolc_left_T2s() [1/3]

template<class A , class B , class U , int Dim, char i, char j>
void FTensor::T2s_equals_adolc_left_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &   
)
inline

Definition at line 89 of file Tensor2_symmetric_Expr_equals.hpp.

92 {
93 iter(0, 0) <<= result(0, 0);
94 }

◆ T2s_equals_adolc_left_T2s() [2/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void FTensor::T2s_equals_adolc_left_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)
inline

Definition at line 79 of file Tensor2_symmetric_Expr_equals.hpp.

82 {
83 iter(0, Current_Dim1 - 1) <<= result(0, Current_Dim1 - 1);
86 }
void T2s_equals_adolc_left_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ T2s_equals_adolc_left_T2s() [3/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void FTensor::T2s_equals_adolc_left_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)
inline

Definition at line 67 of file Tensor2_symmetric_Expr_equals.hpp.

70 {
71 iter(Current_Dim0 - 1, Current_Dim1 - 1)
72 <<= result(Current_Dim0 - 1, Current_Dim1 - 1);
75 }

◆ T2s_equals_generic() [1/3]

template<class A , class U >
void FTensor::T2s_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 316 of file Tensor2_symmetric_Expr_equals.hpp.

317 {
318 iter(0, 0) = u;
319 }

◆ T2s_equals_generic() [2/3]

template<class A , class U , int Current_Dim1>
void FTensor::T2s_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 306 of file Tensor2_symmetric_Expr_equals.hpp.

308 {
309 iter(0, Current_Dim1 - 1) = u;
312 }
void T2s_equals_generic(A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ T2s_equals_generic() [3/3]

template<class A , class U , int Current_Dim0, int Current_Dim1>
void FTensor::T2s_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 297 of file Tensor2_symmetric_Expr_equals.hpp.

299 {
300 iter(Current_Dim0 - 1, Current_Dim1 - 1) = u;
303 }

◆ T2s_equals_T2s() [1/3]

template<class A , class B , class U , int Dim, char i, char j>
void FTensor::T2s_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 36 of file Tensor2_symmetric_Expr_equals.hpp.

39 {
40 iter(0, 0) = result(0, 0);
41 }

◆ T2s_equals_T2s() [2/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void FTensor::T2s_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 26 of file Tensor2_symmetric_Expr_equals.hpp.

29 {
30 iter(0, Current_Dim1 - 1) = result(0, Current_Dim1 - 1);
33 }
void T2s_equals_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ T2s_equals_T2s() [3/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void FTensor::T2s_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 14 of file Tensor2_symmetric_Expr_equals.hpp.

17 {
18 iter(Current_Dim0 - 1, Current_Dim1 - 1)
19 = result(Current_Dim0 - 1, Current_Dim1 - 1);
22 }

◆ T2s_minus_equals_generic() [1/3]

template<class A , class U >
void FTensor::T2s_minus_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 391 of file Tensor2_symmetric_Expr_equals.hpp.

393 {
394 iter(0, 0) -= u;
395 }

◆ T2s_minus_equals_generic() [2/3]

template<class A , class U , int Current_Dim1>
void FTensor::T2s_minus_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 382 of file Tensor2_symmetric_Expr_equals.hpp.

384 {
385 iter(0, Current_Dim1 - 1) -= u;
388 }
void T2s_minus_equals_generic(A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ T2s_minus_equals_generic() [3/3]

template<class A , class U , int Current_Dim0, int Current_Dim1>
void FTensor::T2s_minus_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 373 of file Tensor2_symmetric_Expr_equals.hpp.

375 {
376 iter(Current_Dim0 - 1, Current_Dim1 - 1) -= u;
379 }

◆ T2s_minus_equals_T2s() [1/3]

template<class A , class B , class U , int Dim, char i, char j>
void FTensor::T2s_minus_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 196 of file Tensor2_symmetric_Expr_equals.hpp.

199 {
200 iter(0, 0) -= result(0, 0);
201 }

◆ T2s_minus_equals_T2s() [2/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void FTensor::T2s_minus_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 185 of file Tensor2_symmetric_Expr_equals.hpp.

188 {
189 iter(0, Current_Dim1 - 1) -= result(0, Current_Dim1 - 1);
192 }
void T2s_minus_equals_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ T2s_minus_equals_T2s() [3/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void FTensor::T2s_minus_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 171 of file Tensor2_symmetric_Expr_equals.hpp.

175 {
176 iter(Current_Dim0 - 1, Current_Dim1 - 1)
177 -= result(Current_Dim0 - 1, Current_Dim1 - 1);
180 }

◆ T2s_plus_equals_generic() [1/3]

template<class A , class U >
void FTensor::T2s_plus_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 353 of file Tensor2_symmetric_Expr_equals.hpp.

355 {
356 iter(0, 0) += u;
357 }

◆ T2s_plus_equals_generic() [2/3]

template<class A , class U , int Current_Dim1>
void FTensor::T2s_plus_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 344 of file Tensor2_symmetric_Expr_equals.hpp.

346 {
347 iter(0, Current_Dim1 - 1) += u;
350 }
void T2s_plus_equals_generic(A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ T2s_plus_equals_generic() [3/3]

template<class A , class U , int Current_Dim0, int Current_Dim1>
void FTensor::T2s_plus_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 335 of file Tensor2_symmetric_Expr_equals.hpp.

337 {
338 iter(Current_Dim0 - 1, Current_Dim1 - 1) += u;
341 }

◆ T2s_plus_equals_T2s() [1/3]

template<class A , class B , class U , int Dim, char i, char j>
void FTensor::T2s_plus_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 149 of file Tensor2_symmetric_Expr_equals.hpp.

152 {
153 iter(0, 0) += result(0, 0);
154 }

◆ T2s_plus_equals_T2s() [2/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim1>
void FTensor::T2s_plus_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 138 of file Tensor2_symmetric_Expr_equals.hpp.

141 {
142 iter(0, Current_Dim1 - 1) += result(0, Current_Dim1 - 1);
145 }
void T2s_plus_equals_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ T2s_plus_equals_T2s() [3/3]

template<class A , class B , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
void FTensor::T2s_plus_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 124 of file Tensor2_symmetric_Expr_equals.hpp.

128 {
129 iter(Current_Dim0 - 1, Current_Dim1 - 1)
130 += result(Current_Dim0 - 1, Current_Dim1 - 1);
133 }

◆ T2s_times_equals_generic() [1/3]

template<class A , class U >
void FTensor::T2s_times_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 429 of file Tensor2_symmetric_Expr_equals.hpp.

431 {
432 iter(0, 0) *= u;
433 }

◆ T2s_times_equals_generic() [2/3]

template<class A , class U , int Current_Dim1>
void FTensor::T2s_times_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 420 of file Tensor2_symmetric_Expr_equals.hpp.

422 {
423 iter(0, Current_Dim1 - 1) *= u;
426 }
void T2s_times_equals_generic(A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &)

◆ T2s_times_equals_generic() [3/3]

template<class A , class U , int Current_Dim0, int Current_Dim1>
void FTensor::T2s_times_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 411 of file Tensor2_symmetric_Expr_equals.hpp.

413 {
414 iter(Current_Dim0 - 1, Current_Dim1 - 1) *= u;
417 }

◆ T2s_times_switched_T2s() [1/3]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V FTensor::T2s_times_switched_T2s ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 86 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

89 {
90 return a(0, 0) * b(0, 0);
91 }

◆ T2s_times_switched_T2s() [2/3]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote< T, U >::V FTensor::T2s_times_switched_T2s ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, i > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 75 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

78 {
79 return a(0, Current_Dim1 - 1) * b(Current_Dim1 - 1, 0)
82 }

◆ T2s_times_switched_T2s() [3/3]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V FTensor::T2s_times_switched_T2s ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 61 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

65 {
66 return a(Current_Dim0 - 1, Current_Dim1 - 1)
67 * b(Current_Dim1 - 1, Current_Dim0 - 1)
70 }

◆ T2s_times_T2_01() [1/6]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V FTensor::T2s_times_T2_01 ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, i, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 41 of file Tensor2_symmetric_times_Tensor2.hpp.

44 {
45 return a(0, 0) * b(0, 0);
46 }

◆ T2s_times_T2_01() [2/6]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote< T, U >::V FTensor::T2s_times_T2_01 ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, i, j > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 31 of file Tensor2_symmetric_times_Tensor2.hpp.

34 {
35 return a(0, Current_Dim1 - 1) * b(0, Current_Dim1 - 1)
37 }

◆ T2s_times_T2_01() [3/6]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V FTensor::T2s_times_T2_01 ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 18 of file Tensor2_symmetric_times_Tensor2.hpp.

21 {
22 return a(Current_Dim0 - 1, Current_Dim1 - 1)
23 * b(Current_Dim0 - 1, Current_Dim1 - 1)
26 }

◆ T2s_times_T2_01() [4/6]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V FTensor::T2s_times_T2_01 ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, j, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 100 of file Tensor2_symmetric_times_Tensor2.hpp.

103 {
104 return a(0, 0) * b(0, 0);
105 }

◆ T2s_times_T2_01() [5/6]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote< T, U >::V FTensor::T2s_times_T2_01 ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, j, i > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 90 of file Tensor2_symmetric_times_Tensor2.hpp.

93 {
94 return a(0, Current_Dim1 - 1) * b(0, Current_Dim1 - 1)
96 }

◆ T2s_times_T2_01() [6/6]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V FTensor::T2s_times_T2_01 ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_Expr< B, U, Dim, Dim, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 77 of file Tensor2_symmetric_times_Tensor2.hpp.

80 {
81 return a(Current_Dim0 - 1, Current_Dim1 - 1)
82 * b(Current_Dim0 - 1, Current_Dim1 - 1)
85 }

◆ T2s_times_T2s() [1/3]

template<class A , class B , class T , class U , int Dim, char i, char j>
promote< T, U >::V FTensor::T2s_times_T2s ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 41 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

44 {
45 return a(0, 0) * b(0, 0);
46 }

◆ T2s_times_T2s() [2/3]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim1>
promote< T, U >::V FTensor::T2s_times_T2s ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 31 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

34 {
35 return a(0, Current_Dim1 - 1) * b(0, Current_Dim1 - 1)
37 }

◆ T2s_times_T2s() [3/3]

template<class A , class B , class T , class U , int Dim, char i, char j, int Current_Dim0, int Current_Dim1>
promote< T, U >::V FTensor::T2s_times_T2s ( const Tensor2_symmetric_Expr< A, T, Dim, i, j > &  a,
const Tensor2_symmetric_Expr< B, U, Dim, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &   
)

Definition at line 18 of file Tensor2_symmetric_times_Tensor2_symmetric.hpp.

21 {
22 return a(Current_Dim0 - 1, Current_Dim1 - 1)
23 * b(Current_Dim0 - 1, Current_Dim1 - 1)
26 }

◆ T3_increment() [1/4]

template<class T , int Dim0, int Dim1, int Dim2>
void FTensor::T3_increment ( const Tensor3< T, Dim0, Dim1, Dim2 > &  iter,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)
inline

Definition at line 38 of file Tensor3_pointer.hpp.

40 {
41 iter.increment(Number<1>(), Number<1>(), Number<1>());
42}

◆ T3_increment() [2/4]

template<class T , int Dim0, int Dim1, int Dim2, int Current_Dim2>
void FTensor::T3_increment ( const Tensor3< T, Dim0, Dim1, Dim2 > &  iter,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)
inline

Definition at line 29 of file Tensor3_pointer.hpp.

31 {
32 iter.increment(Number<1>(), Number<1>(), Number<Current_Dim2>());
35}
void T3_increment(const Tensor3< T, Dim0, Dim1, Dim2 > &iter, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ T3_increment() [3/4]

template<class T , int Dim0, int Dim1, int Dim2, int Current_Dim1, int Current_Dim2>
void FTensor::T3_increment ( const Tensor3< T, Dim0, Dim1, Dim2 > &  iter,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)
inline

Definition at line 20 of file Tensor3_pointer.hpp.

◆ T3_increment() [4/4]

template<class T , int Dim0, int Dim1, int Dim2, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3_increment ( const Tensor3< T, Dim0, Dim1, Dim2 > &  iter,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)
inline

◆ T3_times_T3_012() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::T3_times_T3_012 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 56 of file Tensor3_times_Tensor3.hpp.

59 {
60 return a(0, 0, 0) * b(0, 0, 0);
61 }

◆ T3_times_T3_012() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3_times_T3_012 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 43 of file Tensor3_times_Tensor3.hpp.

47 {
48 return a(Current_Dim0 - 1, 0, 0) * b(Current_Dim0 - 1, 0, 0)
50 Number<Dim2>());
51 }

◆ T3_times_T3_012() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3_012 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 29 of file Tensor3_times_Tensor3.hpp.

33 {
34 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
35 * b(Current_Dim0 - 1, 0, Current_Dim2 - 1)
38 }

◆ T3_times_T3_012() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3_012 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim1, Dim2, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 14 of file Tensor3_times_Tensor3.hpp.

18 {
19 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
20 * b(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
24 }

◆ T3_times_T3_021() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::T3_times_T3_021 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 381 of file Tensor3_times_Tensor3.hpp.

384 {
385 return a(0, 0, 0) * b(0, 0, 0);
386 }

◆ T3_times_T3_021() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3_times_T3_021 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 368 of file Tensor3_times_Tensor3.hpp.

372 {
373 return a(Current_Dim0 - 1, 0, 0) * b(Current_Dim0 - 1, 0, 0)
375 Number<Dim2>());
376 }

◆ T3_times_T3_021() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3_021 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 354 of file Tensor3_times_Tensor3.hpp.

358 {
359 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
360 * b(Current_Dim0 - 1, Current_Dim2 - 1, 0)
363 }

◆ T3_times_T3_021() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3_021 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim2, Dim1, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 339 of file Tensor3_times_Tensor3.hpp.

343 {
344 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
345 * b(Current_Dim0 - 1, Current_Dim2 - 1, Current_Dim1 - 1)
349 }

◆ T3_times_T3_102() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::T3_times_T3_102 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 251 of file Tensor3_times_Tensor3.hpp.

254 {
255 return a(0, 0, 0) * b(0, 0, 0);
256 }

◆ T3_times_T3_102() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3_times_T3_102 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 238 of file Tensor3_times_Tensor3.hpp.

242 {
243 return a(Current_Dim0 - 1, 0, 0) * b(0, Current_Dim0 - 1, 0)
245 Number<Dim2>());
246 }

◆ T3_times_T3_102() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3_102 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 224 of file Tensor3_times_Tensor3.hpp.

228 {
229 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
230 * b(0, Current_Dim0 - 1, Current_Dim2 - 1)
233 }

◆ T3_times_T3_102() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3_102 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim0, Dim2, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 209 of file Tensor3_times_Tensor3.hpp.

213 {
214 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
215 * b(Current_Dim1 - 1, Current_Dim0 - 1, Current_Dim2 - 1)
219 }

◆ T3_times_T3_120() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::T3_times_T3_120 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 186 of file Tensor3_times_Tensor3.hpp.

189 {
190 return a(0, 0, 0) * b(0, 0, 0);
191 }

◆ T3_times_T3_120() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3_times_T3_120 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 173 of file Tensor3_times_Tensor3.hpp.

177 {
178 return a(Current_Dim0 - 1, 0, 0) * b(0, 0, Current_Dim0 - 1)
180 Number<Dim2>());
181 }

◆ T3_times_T3_120() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3_120 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 159 of file Tensor3_times_Tensor3.hpp.

163 {
164 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
165 * b(0, Current_Dim2 - 1, Current_Dim0 - 1)
168 }

◆ T3_times_T3_120() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3_120 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim1, Dim2, Dim0, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 144 of file Tensor3_times_Tensor3.hpp.

148 {
149 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
150 * b(Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim0 - 1)
154 }

◆ T3_times_T3_201() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::T3_times_T3_201 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 121 of file Tensor3_times_Tensor3.hpp.

124 {
125 return a(0, 0, 0) * b(0, 0, 0);
126 }

◆ T3_times_T3_201() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3_times_T3_201 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 108 of file Tensor3_times_Tensor3.hpp.

112 {
113 return a(Current_Dim0 - 1, 0, 0) * b(0, Current_Dim0 - 1, 0)
115 Number<Dim2>());
116 }

◆ T3_times_T3_201() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3_201 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 94 of file Tensor3_times_Tensor3.hpp.

98 {
99 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
100 * b(Current_Dim2 - 1, Current_Dim0 - 1, 0)
103 }

◆ T3_times_T3_201() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3_201 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim0, Dim1, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 79 of file Tensor3_times_Tensor3.hpp.

83 {
84 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
85 * b(Current_Dim2 - 1, Current_Dim0 - 1, Current_Dim1 - 1)
89 }

◆ T3_times_T3_210() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::T3_times_T3_210 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 316 of file Tensor3_times_Tensor3.hpp.

319 {
320 return a(0, 0, 0) * b(0, 0, 0);
321 }

◆ T3_times_T3_210() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3_times_T3_210 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 303 of file Tensor3_times_Tensor3.hpp.

307 {
308 return a(Current_Dim0 - 1, 0, 0) * b(0, 0, Current_Dim0 - 1)
310 Number<Dim2>());
311 }

◆ T3_times_T3_210() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3_210 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 289 of file Tensor3_times_Tensor3.hpp.

293 {
294 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
295 * b(Current_Dim2 - 1, 0, Current_Dim0 - 1)
298 }

◆ T3_times_T3_210() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim1, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3_210 ( const Tensor3_Expr< A, T, Dim0, Dim1, Dim2, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim2, Dim1, Dim0, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 274 of file Tensor3_times_Tensor3.hpp.

278 {
279 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
280 * b(Current_Dim2 - 1, Current_Dim1 - 1, Current_Dim0 - 1)
284 }

◆ T3_times_T3dg_012() [1/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::T3_times_T3dg_012 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, i, j, k > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 56 of file Tensor3_times_Dg.hpp.

59 {
60 return a(0, 0, 0) * b(0, 0, 0);
61 }

◆ T3_times_T3dg_012() [2/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3_times_T3dg_012 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 43 of file Tensor3_times_Dg.hpp.

47 {
48 return a(Current_Dim0 - 1, 0, 0) * b(Current_Dim0 - 1, 0, 0)
50 Number<Dim2>());
51 }

◆ T3_times_T3dg_012() [3/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3dg_012 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 29 of file Tensor3_times_Dg.hpp.

33 {
34 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
35 * b(Current_Dim0 - 1, 0, Current_Dim2 - 1)
38 }

◆ T3_times_T3dg_012() [4/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3dg_012 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 14 of file Tensor3_times_Dg.hpp.

18 {
19 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
20 * b(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
24 }

◆ T3_times_T3dg_021() [1/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote< T, U >::V FTensor::T3_times_T3dg_021 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, i, k, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 381 of file Tensor3_times_Dg.hpp.

384 {
385 return a(0, 0, 0) * b(0, 0, 0);
386 }

◆ T3_times_T3dg_021() [2/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3_times_T3dg_021 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 368 of file Tensor3_times_Dg.hpp.

372 {
373 return a(Current_Dim0 - 1, 0, 0) * b(Current_Dim0 - 1, 0, 0)
376 }

◆ T3_times_T3dg_021() [3/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3dg_021 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 354 of file Tensor3_times_Dg.hpp.

358 {
359 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
360 * b(Current_Dim0 - 1, Current_Dim2 - 1, 0)
363 }

◆ T3_times_T3dg_021() [4/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3dg_021 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 339 of file Tensor3_times_Dg.hpp.

343 {
344 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
345 * b(Current_Dim0 - 1, Current_Dim2 - 1, Current_Dim1 - 1)
349 }

◆ T3_times_T3dg_102() [1/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k>
promote< T, U >::V FTensor::T3_times_T3dg_102 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, j, i, k > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 251 of file Tensor3_times_Dg.hpp.

254 {
255 return a(0, 0, 0) * b(0, 0, 0);
256 }

◆ T3_times_T3dg_102() [2/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3_times_T3dg_102 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 238 of file Tensor3_times_Dg.hpp.

242 {
243 return a(Current_Dim0 - 1, 0, 0) * b(0, Current_Dim0 - 1, 0)
245 Number<Dim2>());
246 }

◆ T3_times_T3dg_102() [3/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3dg_102 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 224 of file Tensor3_times_Dg.hpp.

228 {
229 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
230 * b(0, Current_Dim0 - 1, Current_Dim2 - 1)
233 }

◆ T3_times_T3dg_102() [4/4]

template<class A , class B , class T , class U , int Dim, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3dg_102 ( const Tensor3_Expr< A, T, Dim, Dim, Dim2, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim2, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 209 of file Tensor3_times_Dg.hpp.

213 {
214 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
215 * b(Current_Dim1 - 1, Current_Dim0 - 1, Current_Dim2 - 1)
219 }

◆ T3_times_T3dg_120() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote< T, U >::V FTensor::T3_times_T3dg_120 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, j, k, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 186 of file Tensor3_times_Dg.hpp.

189 {
190 return a(0, 0, 0) * b(0, 0, 0);
191 }

◆ T3_times_T3dg_120() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3_times_T3dg_120 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 173 of file Tensor3_times_Dg.hpp.

177 {
178 return a(Current_Dim0 - 1, 0, 0) * b(0, 0, Current_Dim0 - 1)
180 Number<Dim>());
181 }

◆ T3_times_T3dg_120() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3dg_120 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 159 of file Tensor3_times_Dg.hpp.

163 {
164 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
165 * b(0, Current_Dim2 - 1, Current_Dim0 - 1)
168 }

◆ T3_times_T3dg_120() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3dg_120 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 144 of file Tensor3_times_Dg.hpp.

148 {
149 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
150 * b(Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim0 - 1)
154 }

◆ T3_times_T3dg_201() [1/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k>
promote< T, U >::V FTensor::T3_times_T3dg_201 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, k, i, j > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 121 of file Tensor3_times_Dg.hpp.

124 {
125 return a(0, 0, 0) * b(0, 0, 0);
126 }

◆ T3_times_T3dg_201() [2/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3_times_T3dg_201 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 108 of file Tensor3_times_Dg.hpp.

112 {
113 return a(Current_Dim0 - 1, 0, 0) * b(0, Current_Dim0 - 1, 0)
116 }

◆ T3_times_T3dg_201() [3/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3dg_201 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 94 of file Tensor3_times_Dg.hpp.

98 {
99 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
100 * b(Current_Dim2 - 1, Current_Dim0 - 1, 0)
103 }

◆ T3_times_T3dg_201() [4/4]

template<class A , class B , class T , class U , int Dim, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3dg_201 ( const Tensor3_Expr< A, T, Dim, Dim1, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim1, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 79 of file Tensor3_times_Dg.hpp.

83 {
84 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
85 * b(Current_Dim2 - 1, Current_Dim0 - 1, Current_Dim1 - 1)
89 }

◆ T3_times_T3dg_210() [1/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k>
promote< T, U >::V FTensor::T3_times_T3dg_210 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, k, j, i > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 316 of file Tensor3_times_Dg.hpp.

319 {
320 return a(0, 0, 0) * b(0, 0, 0);
321 }

◆ T3_times_T3dg_210() [2/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3_times_T3dg_210 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 303 of file Tensor3_times_Dg.hpp.

307 {
308 return a(Current_Dim0 - 1, 0, 0) * b(0, 0, Current_Dim0 - 1)
310 Number<Dim>());
311 }

◆ T3_times_T3dg_210() [3/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3dg_210 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 289 of file Tensor3_times_Dg.hpp.

293 {
294 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
295 * b(Current_Dim2 - 1, 0, Current_Dim0 - 1)
298 }

◆ T3_times_T3dg_210() [4/4]

template<class A , class B , class T , class U , int Dim0, int Dim, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3_times_T3dg_210 ( const Tensor3_Expr< A, T, Dim0, Dim, Dim, i, j, k > &  a,
const Dg_Expr< B, U, Dim, Dim0, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 274 of file Tensor3_times_Dg.hpp.

278 {
279 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
280 * b(Current_Dim2 - 1, Current_Dim1 - 1, Current_Dim0 - 1)
284 }

◆ T3as_equals_T3as() [1/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k>
void FTensor::T3as_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 2 > &   
)

Definition at line 53 of file Tensor3_antisymmetric_Expr_equals.hpp.

57 {
58 iter.unsafe(0, 0, 1) = result(0, 0, 1);
59 }

◆ T3as_equals_T3as() [2/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
void FTensor::T3as_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 2 > &   
)

Definition at line 41 of file Tensor3_antisymmetric_Expr_equals.hpp.

45 {
46 iter.unsafe(Current_Dim0 - 1, 0, 1) = result(Current_Dim0 - 1, 0, 1);
49 }
void T3as_equals_T3as(A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ T3as_equals_T3as() [3/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
void FTensor::T3as_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 27 of file Tensor3_antisymmetric_Expr_equals.hpp.

32 {
33 iter.unsafe(Current_Dim0 - 1, 0, Current_Dim2 - 1)
34 = result(Current_Dim0 - 1, 0, Current_Dim2 - 1);
37 }

◆ T3as_equals_T3as() [4/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3as_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 13 of file Tensor3_antisymmetric_Expr_equals.hpp.

18 {
19 iter.unsafe(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
20 = result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1);
23 }

◆ T3as_switched_equals_T3as() [1/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k>
void FTensor::T3as_switched_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 2 > &   
)

Definition at line 135 of file Tensor3_antisymmetric_Expr_equals.hpp.

139 {
140 iter.unsafe(0, 0, 1) = -result(0, 0, 1);
141 }

◆ T3as_switched_equals_T3as() [2/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
void FTensor::T3as_switched_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< 2 > &   
)

Definition at line 123 of file Tensor3_antisymmetric_Expr_equals.hpp.

127 {
128 iter.unsafe(Current_Dim0 - 1, 0, 1) = -result(Current_Dim0 - 1, 0, 1);
131 }
void T3as_switched_equals_T3as(A &iter, const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ T3as_switched_equals_T3as() [3/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
void FTensor::T3as_switched_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 108 of file Tensor3_antisymmetric_Expr_equals.hpp.

113 {
114 iter.unsafe(Current_Dim0 - 1, 0, Current_Dim2 - 1)
115 = -result(Current_Dim0 - 1, 0, Current_Dim2 - 1);
119 }

◆ T3as_switched_equals_T3as() [4/4]

template<class A , class B , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3as_switched_equals_T3as ( A iter,
const Tensor3_antisymmetric_Expr< B, U, Dim0, Dim12, i, k, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 93 of file Tensor3_antisymmetric_Expr_equals.hpp.

98 {
99 iter.unsafe(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
100 = -result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1);
104 }

◆ T3as_times_T3_012() [1/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b,
const Number< 1 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 70 of file Tensor3_antisymmetric_times_Tensor3.hpp.

74 {
75 return a(0, 1, 0) * b(0, 1, 0);
76 }

◆ T3as_times_T3_012() [2/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 29 of file Tensor3_antisymmetric_times_Tensor3.hpp.

34 {
35 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
36 * b(Current_Dim0 - 1, 0, Current_Dim2 - 1)
39 }

◆ T3as_times_T3_012() [3/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 58 of file Tensor3_antisymmetric_times_Tensor3.hpp.

62 {
63 return a(Current_Dim0 - 1, 1, 0) * b(Current_Dim0 - 1, 1, 0)
66 }

◆ T3as_times_T3_012() [4/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 14 of file Tensor3_antisymmetric_times_Tensor3.hpp.

19 {
20 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
21 * b(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
25 }

◆ T3as_times_T3_012() [5/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, j, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim2 > &   
)

◆ T3as_times_T3_012() [6/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b,
const Number< 1 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 510 of file Tensor3_antisymmetric_times_Tensor3.hpp.

514 {
515 return a(0, 1, 0) * b(0, 0, 1);
516 }

◆ T3as_times_T3_012() [7/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 469 of file Tensor3_antisymmetric_times_Tensor3.hpp.

474 {
475 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
476 * b(Current_Dim0 - 1, Current_Dim2 - 1, 0)
479 }

◆ T3as_times_T3_012() [8/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 498 of file Tensor3_antisymmetric_times_Tensor3.hpp.

502 {
503 return a(Current_Dim0 - 1, 1, 0) * b(Current_Dim0 - 1, 0, 1)
506 }

◆ T3as_times_T3_012() [9/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 454 of file Tensor3_antisymmetric_times_Tensor3.hpp.

459 {
460 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
461 * b(Current_Dim0 - 1, Current_Dim2 - 1, Current_Dim1 - 1)
465 }

◆ T3as_times_T3_012() [10/10]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_012 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, i, k, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 485 of file Tensor3_antisymmetric_times_Tensor3.hpp.

◆ T3as_times_T3_102() [1/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::T3as_times_T3_102 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &  b,
const Number< 1 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 334 of file Tensor3_antisymmetric_times_Tensor3.hpp.

338 {
339 return a(0, 1, 0) * b(1, 0, 0);
340 }

◆ T3as_times_T3_102() [2/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_102 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 293 of file Tensor3_antisymmetric_times_Tensor3.hpp.

298 {
299 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
300 * b(0, Current_Dim0 - 1, Current_Dim2 - 1)
303 }

◆ T3as_times_T3_102() [3/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3as_times_T3_102 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 322 of file Tensor3_antisymmetric_times_Tensor3.hpp.

326 {
327 return a(Current_Dim0 - 1, 1, 0) * b(1, Current_Dim0 - 1, 0)
330 }

◆ T3as_times_T3_102() [4/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_102 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 278 of file Tensor3_antisymmetric_times_Tensor3.hpp.

283 {
284 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
285 * b(Current_Dim1 - 1, Current_Dim0 - 1, Current_Dim2 - 1)
289 }

◆ T3as_times_T3_102() [5/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_102 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, i, k > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 309 of file Tensor3_antisymmetric_times_Tensor3.hpp.

◆ T3as_times_T3_120() [1/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::T3as_times_T3_120 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &  b,
const Number< 1 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 246 of file Tensor3_antisymmetric_times_Tensor3.hpp.

250 {
251 return a(0, 1, 0) * b(1, 0, 0);
252 }

◆ T3as_times_T3_120() [2/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_120 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 205 of file Tensor3_antisymmetric_times_Tensor3.hpp.

210 {
211 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
212 * b(0, Current_Dim2 - 1, Current_Dim0 - 1)
215 }

◆ T3as_times_T3_120() [3/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3as_times_T3_120 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 234 of file Tensor3_antisymmetric_times_Tensor3.hpp.

238 {
239 return a(Current_Dim0 - 1, 1, 0) * b(1, 0, Current_Dim0 - 1)
242 }

◆ T3as_times_T3_120() [4/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_120 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 190 of file Tensor3_antisymmetric_times_Tensor3.hpp.

195 {
196 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
197 * b(Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim0 - 1)
201 }

◆ T3as_times_T3_120() [5/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_120 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, j, k, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 221 of file Tensor3_antisymmetric_times_Tensor3.hpp.

◆ T3as_times_T3_201() [1/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::T3as_times_T3_201 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &  b,
const Number< 1 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 158 of file Tensor3_antisymmetric_times_Tensor3.hpp.

162 {
163 return a(0, 1, 0) * b(0, 0, 1);
164 }

◆ T3as_times_T3_201() [2/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_201 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 117 of file Tensor3_antisymmetric_times_Tensor3.hpp.

122 {
123 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
124 * b(Current_Dim2 - 1, Current_Dim0 - 1, 0)
127 }

◆ T3as_times_T3_201() [3/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3as_times_T3_201 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 146 of file Tensor3_antisymmetric_times_Tensor3.hpp.

150 {
151 return a(Current_Dim0 - 1, 1, 0) * b(0, Current_Dim0 - 1, 1)
154 }

◆ T3as_times_T3_201() [4/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_201 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 102 of file Tensor3_antisymmetric_times_Tensor3.hpp.

107 {
108 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
109 * b(Current_Dim2 - 1, Current_Dim0 - 1, Current_Dim1 - 1)
113 }

◆ T3as_times_T3_201() [5/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_201 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, i, j > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 133 of file Tensor3_antisymmetric_times_Tensor3.hpp.

◆ T3as_times_T3_210() [1/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k>
promote< T, U >::V FTensor::T3as_times_T3_210 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &  b,
const Number< 1 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 422 of file Tensor3_antisymmetric_times_Tensor3.hpp.

426 {
427 return a(0, 1, 0) * b(0, 1, 0);
428 }

◆ T3as_times_T3_210() [2/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_210 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 381 of file Tensor3_antisymmetric_times_Tensor3.hpp.

386 {
387 return a(Current_Dim0 - 1, 0, Current_Dim2 - 1)
388 * b(Current_Dim2 - 1, 0, Current_Dim0 - 1)
391 }

◆ T3as_times_T3_210() [3/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0>
promote< T, U >::V FTensor::T3as_times_T3_210 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< 2 > &  ,
const Number< 1 > &   
)

Definition at line 410 of file Tensor3_antisymmetric_times_Tensor3.hpp.

414 {
415 return a(Current_Dim0 - 1, 1, 0) * b(0, 1, Current_Dim0 - 1)
418 }

◆ T3as_times_T3_210() [4/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_210 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 366 of file Tensor3_antisymmetric_times_Tensor3.hpp.

371 {
372 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
373 * b(Current_Dim2 - 1, Current_Dim1 - 1, Current_Dim0 - 1)
377 }

◆ T3as_times_T3_210() [5/5]

template<class A , class B , class T , class U , int Dim0, int Dim12, char i, char j, char k, int Current_Dim0, int Current_Dim2>
promote< T, U >::V FTensor::T3as_times_T3_210 ( const Tensor3_antisymmetric_Expr< A, T, Dim0, Dim12, i, j, k > &  a,
const Tensor3_Expr< B, U, Dim0, Dim12, Dim12, k, j, i > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 397 of file Tensor3_antisymmetric_times_Tensor3.hpp.

◆ T3ch_equals_generic() [1/4]

template<class A , class U , int Dim12, int Dim0>
void FTensor::T3ch_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Dim12 > &  ,
const Number< Dim0 > &   
)

Definition at line 434 of file Dg_Expr_equals.hpp.

437 {
438 iter(0, 0, 0) = u;
439 }

◆ T3ch_equals_generic() [2/4]

template<class A , class U , int Dim12, int Dim0, int Current_Dim2>
void FTensor::T3ch_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Dim12 > &  ,
const Number< Dim0 > &   
)

Definition at line 423 of file Dg_Expr_equals.hpp.

426 {
427 iter(Current_Dim2 - 1, 0, 0) = u;
430 Number<Dim0>());
431 }
void T3ch_equals_generic(A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Dim12 > &, const Number< Dim0 > &)

◆ T3ch_equals_generic() [3/4]

template<class A , class U , int Dim12, int Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3ch_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Dim12 > &  ,
const Number< Dim0 > &   
)

Definition at line 411 of file Dg_Expr_equals.hpp.

415 {
416 iter(Current_Dim2 - 1, 0, Current_Dim1 - 1) = u;
420 }

◆ T3ch_equals_generic() [4/4]

template<class A , class U , int Dim12, int Dim0, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3ch_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Dim12 > &  ,
const Number< Dim0 > &   
)

Definition at line 398 of file Dg_Expr_equals.hpp.

402 {
403 iter(Current_Dim2 - 1, Current_Dim0 - 1, Current_Dim1 - 1) = u;
407 }

◆ T3ch_equals_T3dg() [1/4]

template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, class Op >
void FTensor::T3ch_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Op  
)

Definition at line 319 of file Dg_Expr_equals.hpp.

322 {
323 Op::op(iter(0, 0, 0), result(0, 0, 0));
324 }

◆ T3ch_equals_T3dg() [2/4]

template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, int Current_Dim2, class Op >
void FTensor::T3ch_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Op  
)

Definition at line 308 of file Dg_Expr_equals.hpp.

311 {
312 Op::op(iter(Current_Dim2 - 1, 0, 0), result(0, 0, Current_Dim2 - 1));
315 }
void T3ch_equals_T3dg(A &iter, const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Op &)

◆ T3ch_equals_T3dg() [3/4]

template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, int Current_Dim1, int Current_Dim2, class Op >
void FTensor::T3ch_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Op  
)

Definition at line 296 of file Dg_Expr_equals.hpp.

299 {
300 Op::op(iter(Current_Dim2 - 1, 0, Current_Dim1 - 1),
301 result(0, Current_Dim1 - 1, Current_Dim2 - 1));
304 }

◆ T3ch_equals_T3dg() [4/4]

template<class A , class B , class U , int Dim12, int Dim0, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2, class Op >
void FTensor::T3ch_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim12, Dim0, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Op  
)

Definition at line 285 of file Dg_Expr_equals.hpp.

287 {
288 Op::op(iter(Current_Dim2 - 1, Current_Dim0 - 1, Current_Dim1 - 1),
289 result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1));
292 }

◆ T3dg_equals_generic() [1/4]

template<class A , class U , int Dim01, int Dim2>
void FTensor::T3dg_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Dim01 > &  ,
const Number< Dim2 > &   
)

Definition at line 233 of file Dg_Expr_equals.hpp.

236 {
237 iter(0, 0, 0) = u;
238 }

◆ T3dg_equals_generic() [2/4]

template<class A , class U , int Dim01, int Dim2, int Current_Dim2>
void FTensor::T3dg_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Dim01 > &  ,
const Number< Dim2 > &   
)

Definition at line 222 of file Dg_Expr_equals.hpp.

225 {
226 iter(0, 0, Current_Dim2 - 1) = u;
229 Number<Dim2>());
230 }
void T3dg_equals_generic(A &iter, const U &u, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Dim01 > &, const Number< Dim2 > &)

◆ T3dg_equals_generic() [3/4]

template<class A , class U , int Dim01, int Dim2, int Current_Dim1, int Current_Dim2>
void FTensor::T3dg_equals_generic ( A iter,
const U &  u,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Dim01 > &  ,
const Number< Dim2 > &   
)

Definition at line 210 of file Dg_Expr_equals.hpp.

214 {
215 iter(0, Current_Dim1 - 1, Current_Dim2 - 1) = u;
219 }

◆ T3dg_equals_generic() [4/4]

template<class A , class U , int Dim01, int Dim2, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3dg_equals_generic ( A iter,
const U &  u,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Dim01 > &  ,
const Number< Dim2 > &   
)

Definition at line 197 of file Dg_Expr_equals.hpp.

201 {
202 iter(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1) = u;
206 }

◆ T3dg_equals_T3dg() [1/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k>
void FTensor::T3dg_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 53 of file Dg_Expr_equals.hpp.

55 {
56 iter(0, 0, 0) = result(0, 0, 0);
57 }

◆ T3dg_equals_T3dg() [2/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim2>
void FTensor::T3dg_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 41 of file Dg_Expr_equals.hpp.

44 {
45 iter(0, 0, Current_Dim2 - 1) = result(0, 0, Current_Dim2 - 1);
48 }
void T3dg_equals_T3dg(A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &)

◆ T3dg_equals_T3dg() [3/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim1, int Current_Dim2>
void FTensor::T3dg_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 28 of file Dg_Expr_equals.hpp.

31 {
32 iter(0, Current_Dim1 - 1, Current_Dim2 - 1)
33 = result(0, Current_Dim1 - 1, Current_Dim2 - 1);
36 }

◆ T3dg_equals_T3dg() [4/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2>
void FTensor::T3dg_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &   
)

Definition at line 15 of file Dg_Expr_equals.hpp.

18 {
19 iter(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1)
20 = result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1);
23 }

◆ T3dg_plus_equals_T3dg() [1/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, class Op >
void FTensor::T3dg_plus_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Op  
)

Definition at line 139 of file Dg_Expr_equals.hpp.

142 {
143 Op::op(iter(0, 0, 0), result(0, 0, 0));
144 }

◆ T3dg_plus_equals_T3dg() [2/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim2, class Op >
void FTensor::T3dg_plus_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Op  
)

Definition at line 128 of file Dg_Expr_equals.hpp.

131 {
132 Op::op(iter(0, 0, Current_Dim2 - 1), result(0, 0, Current_Dim2 - 1));
135 }
void T3dg_plus_equals_T3dg(A &iter, const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Op &)

◆ T3dg_plus_equals_T3dg() [3/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim1, int Current_Dim2, class Op >
void FTensor::T3dg_plus_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Op  
)

Definition at line 115 of file Dg_Expr_equals.hpp.

118 {
119 Op::op(iter(0, Current_Dim1 - 1, Current_Dim2 - 1),
120 result(0, Current_Dim1 - 1, Current_Dim2 - 1));
123 Op());
124 }

◆ T3dg_plus_equals_T3dg() [4/4]

template<class A , class B , class U , int Dim01, int Dim2, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2, class Op >
void FTensor::T3dg_plus_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim01, Dim2, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Op  
)

Definition at line 102 of file Dg_Expr_equals.hpp.

106 {
107 Op::op(iter(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1),
108 result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1));
111 }

◆ T3dgrhs01_equals_T1() [1/2]

template<class A , class B , class U , int Dim, char i, int N1, int N2>
void FTensor::T3dgrhs01_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i > &  result,
const Number< N1 > &  ,
const Number< N2 > &  ,
const Number< 1 > &   
)

Definition at line 831 of file Tensor1_Expr_equals.hpp.

834 {
835 iter(N1, N2, 0) = result(0);
836 }

◆ T3dgrhs01_equals_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int N1, int N2, int Current_Dim>
void FTensor::T3dgrhs01_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i > &  result,
const Number< N1 > &  NN1,
const Number< N2 > &  NN2,
const Number< Current_Dim > &   
)

Definition at line 822 of file Tensor1_Expr_equals.hpp.

825 {
826 iter(N1, N2, Current_Dim - 1) = result(Current_Dim - 1);
827 T3dgrhs01_equals_T1(iter, result, NN1, NN2, Number<Current_Dim - 1>());
828 }
void T3dgrhs01_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim, i > &result, const Number< N1 > &NN1, const Number< N2 > &NN2, const Number< Current_Dim > &)

◆ T3dgrhs12_equals_T1() [1/2]

template<class A , class B , class U , int Dim, char i, int N1, int N2>
void FTensor::T3dgrhs12_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i > &  result,
const Number< N1 > &  ,
const Number< N2 > &  ,
const Number< 1 > &   
)

Definition at line 792 of file Tensor1_Expr_equals.hpp.

795 {
796 iter(0, N1, N2) = result(0);
797 }

◆ T3dgrhs12_equals_T1() [2/2]

template<class A , class B , class U , int Dim, char i, int N1, int N2, int Current_Dim>
void FTensor::T3dgrhs12_equals_T1 ( A iter,
const Tensor1_Expr< B, U, Dim, i > &  result,
const Number< N1 > &  NN1,
const Number< N2 > &  NN2,
const Number< Current_Dim > &   
)

Definition at line 783 of file Tensor1_Expr_equals.hpp.

786 {
787 iter(Current_Dim - 1, N1, N2) = result(Current_Dim - 1);
788 T3dgrhs12_equals_T1(iter, result, NN1, NN2, Number<Current_Dim - 1>());
789 }
void T3dgrhs12_equals_T1(A &iter, const Tensor1_Expr< B, U, Dim, i > &result, const Number< N1 > &NN1, const Number< N2 > &NN2, const Number< Current_Dim > &)

◆ T3dgrhs2_equals_T2s() [1/3]

template<class A , class B , class U , int Dim01, char i, char j, int N>
void FTensor::T3dgrhs2_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< N > &   
)

Definition at line 516 of file Tensor2_symmetric_Expr_equals.hpp.

519 {
520 iter(0, 0, N) = result(0, 0);
521 }

◆ T3dgrhs2_equals_T2s() [2/3]

template<class A , class B , class U , int Dim01, char i, char j, int N, int Current_Dim1>
void FTensor::T3dgrhs2_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< N > &   
)

Definition at line 504 of file Tensor2_symmetric_Expr_equals.hpp.

508 {
509 iter(0, Current_Dim1 - 1, N) = result(0, Current_Dim1 - 1);
512 }
void T3dgrhs2_equals_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< N > &)

◆ T3dgrhs2_equals_T2s() [3/3]

template<class A , class B , class U , int Dim01, char i, char j, int N, int Current_Dim0, int Current_Dim1>
void FTensor::T3dgrhs2_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< N > &   
)

Definition at line 490 of file Tensor2_symmetric_Expr_equals.hpp.

494 {
495 iter(Current_Dim0 - 1, Current_Dim1 - 1, N)
496 = result(Current_Dim0 - 1, Current_Dim1 - 1);
499 }

◆ T4_increment() [1/5]

template<class T , int Dim0, int Dim1, int Dim2, int Dim3>
void FTensor::T4_increment ( const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &  iter,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)
inline

Definition at line 58 of file Tensor4_pointer.hpp.

61{
62 iter.increment(Number<1>(), Number<1>(), Number<1>(), Number<1>());
63}

◆ T4_increment() [2/5]

template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim3>
void FTensor::T4_increment ( const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &  iter,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim3 > &   
)
inline

Definition at line 47 of file Tensor4_pointer.hpp.

50{
51 iter.increment(Number<1>(), Number<1>(), Number<1>(),
55}
void T4_increment(const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &iter, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)

◆ T4_increment() [3/5]

template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim2, int Current_Dim3>
void FTensor::T4_increment ( const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &  iter,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)
inline

Definition at line 36 of file Tensor4_pointer.hpp.

◆ T4_increment() [4/5]

template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim1, int Current_Dim2, int Current_Dim3>
void FTensor::T4_increment ( const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &  iter,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)
inline

◆ T4_increment() [5/5]

template<class T , int Dim0, int Dim1, int Dim2, int Dim3, int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3>
void FTensor::T4_increment ( const Tensor4< T, Dim0, Dim1, Dim2, Dim3 > &  iter,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)
inline

◆ T4ddg_equals_T4ddg() [1/5]

template<class A , class B , class U , int Dim01, int Dim23, char i, char j, char k, char l>
void FTensor::T4ddg_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 77 of file Ddg_Expr_equals.hpp.

81 {
82 iter(0, 0, 0, 0) = result(0, 0, 0, 0);
83 }

◆ T4ddg_equals_T4ddg() [2/5]

template<class A , class B , class U , int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void FTensor::T4ddg_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 64 of file Ddg_Expr_equals.hpp.

68 {
69 iter(0, 0, 0, Current_Dim3 - 1) = result(0, 0, 0, Current_Dim3 - 1);
72 }
void T4ddg_equals_T4ddg(A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &)

◆ T4ddg_equals_T4ddg() [3/5]

template<class A , class B , class U , int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void FTensor::T4ddg_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 49 of file Ddg_Expr_equals.hpp.

54 {
55 iter(0, 0, Current_Dim2 - 1, Current_Dim3 - 1)
56 = result(0, 0, Current_Dim2 - 1, Current_Dim3 - 1);
59 }

◆ T4ddg_equals_T4ddg() [4/5]

template<class A , class B , class U , int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void FTensor::T4ddg_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 33 of file Ddg_Expr_equals.hpp.

38 {
39 iter(0, Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim3 - 1)
40 = result(0, Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim3 - 1);
44 }

◆ T4ddg_equals_T4ddg() [5/5]

template<class A , class B , class U , int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l>
void FTensor::T4ddg_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 13 of file Ddg_Expr_equals.hpp.

19 {
20 iter(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1,
21 Current_Dim3 - 1)
22 = result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1,
23 Current_Dim3 - 1);
27 }

◆ T4ddg_plus_equals_T4ddg() [1/5]

template<class A , class B , class U , int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void FTensor::T4ddg_plus_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Op  
)

Definition at line 181 of file Ddg_Expr_equals.hpp.

185 {
186 Op::op(iter(0, 0, 0, 0), result(0, 0, 0, 0));
187 }

◆ T4ddg_plus_equals_T4ddg() [2/5]

template<class A , class B , class U , int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void FTensor::T4ddg_plus_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim3 > &  ,
const Op  
)

Definition at line 168 of file Ddg_Expr_equals.hpp.

171 {
172 Op::op(iter(0, 0, 0, Current_Dim3 - 1), result(0, 0, 0, Current_Dim3 - 1));
176 }
void T4ddg_plus_equals_T4ddg(A &iter, const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< Current_Dim3 > &, const Op &)

◆ T4ddg_plus_equals_T4ddg() [3/5]

template<class A , class B , class U , int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void FTensor::T4ddg_plus_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &  ,
const Op  
)

Definition at line 155 of file Ddg_Expr_equals.hpp.

158 {
159 Op::op(iter(0, 0, Current_Dim2 - 1, Current_Dim3 - 1),
160 result(0, 0, Current_Dim2 - 1, Current_Dim3 - 1));
163 Op());
164 }

◆ T4ddg_plus_equals_T4ddg() [4/5]

template<class A , class B , class U , int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void FTensor::T4ddg_plus_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &  ,
const Op  
)

Definition at line 141 of file Ddg_Expr_equals.hpp.

144 {
145 Op::op(iter(0, Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim3 - 1),
146 result(0, Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim3 - 1));
150 }

◆ T4ddg_plus_equals_T4ddg() [5/5]

template<class A , class B , class U , int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3, int Dim01, int Dim23, char i, char j, char k, char l, class Op >
void FTensor::T4ddg_plus_equals_T4ddg ( A iter,
const Ddg_Expr< B, U, Dim01, Dim23, i, j, k, l > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &  ,
const Op  
)

Definition at line 124 of file Ddg_Expr_equals.hpp.

127 {
128
129 Op::op(iter(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1,
130 Current_Dim3 - 1),
131 result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1,
132 Current_Dim3 - 1));
136 }

◆ T4ddg_times_T4ddg_0213() [1/5]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l>
promote< T, U >::V FTensor::T4ddg_times_T4ddg_0213 ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &   
)

Definition at line 69 of file Ddg_times_Ddg.hpp.

72 {
73 return a(0, 0, 0, 0) * b(0, 0, 0, 0);
74}

◆ T4ddg_times_T4ddg_0213() [2/5]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim3>
promote< T, U >::V FTensor::T4ddg_times_T4ddg_0213 ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 57 of file Ddg_times_Ddg.hpp.

60 {
61 return a(0, 0, 0, Current_Dim3 - 1) * b(0, 0, 0, Current_Dim3 - 1) +
64}

◆ T4ddg_times_T4ddg_0213() [3/5]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim2, int Current_Dim3>
promote< T, U >::V FTensor::T4ddg_times_T4ddg_0213 ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 42 of file Ddg_times_Ddg.hpp.

46 {
47 return a(0, 0, Current_Dim2 - 1, Current_Dim3 - 1) *
48 b(0, Current_Dim2 - 1, 0, Current_Dim3 - 1) +
52}

◆ T4ddg_times_T4ddg_0213() [4/5]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim1, int Current_Dim2, int Current_Dim3>
promote< T, U >::V FTensor::T4ddg_times_T4ddg_0213 ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 28 of file Ddg_times_Ddg.hpp.

32 {
33 return a(0, Current_Dim1 - 1, Current_Dim2 - 1, Current_Dim3 - 1) *
34 b(0, Current_Dim2 - 1, Current_Dim1 - 1, Current_Dim3 - 1) +
37}

◆ T4ddg_times_T4ddg_0213() [5/5]

template<class A , class B , class T , class U , int Dim, char i, char j, char k, char l, int Current_Dim0, int Current_Dim1, int Current_Dim2, int Current_Dim3>
promote< T, U >::V FTensor::T4ddg_times_T4ddg_0213 ( const Ddg_Expr< A, T, Dim, Dim, i, j, k, l > &  a,
const Ddg_Expr< B, U, Dim, Dim, i, k, j, l > &  b,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< Current_Dim3 > &   
)

Definition at line 11 of file Ddg_times_Ddg.hpp.

15 {
16 return a(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1,
17 Current_Dim3 - 1) *
18 b(Current_Dim0 - 1, Current_Dim2 - 1, Current_Dim1 - 1,
19 Current_Dim3 - 1) +
23}

◆ T4ddgrhs01_equals_T2s() [1/3]

template<class A , class B , class U , int Dim01, char i, char j, int N0, int N1>
void FTensor::T4ddgrhs01_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< N0 > &  ,
const Number< N1 > &   
)

Definition at line 575 of file Tensor2_symmetric_Expr_equals.hpp.

579 {
580 iter(N0, N1, 0, 0) = result(0, 0);
581 }

◆ T4ddgrhs01_equals_T2s() [2/3]

template<class A , class B , class U , int Dim01, char i, char j, int N0, int N1, int Current_Dim1>
void FTensor::T4ddgrhs01_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< N0 > &  ,
const Number< N1 > &   
)

Definition at line 562 of file Tensor2_symmetric_Expr_equals.hpp.

566 {
567 iter(N0, N1, 0, Current_Dim1 - 1) = result(0, Current_Dim1 - 1);
570 Number<N1>());
571 }
void T4ddgrhs01_equals_T2s(A &iter, const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< N0 > &, const Number< N1 > &)

◆ T4ddgrhs01_equals_T2s() [3/3]

template<class A , class B , class U , int Dim01, char i, char j, int N0, int N1, int Current_Dim0, int Current_Dim1>
void FTensor::T4ddgrhs01_equals_T2s ( A iter,
const Tensor2_symmetric_Expr< B, U, Dim01, i, j > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< N0 > &  ,
const Number< N1 > &   
)

Definition at line 549 of file Tensor2_symmetric_Expr_equals.hpp.

553 {
554 iter(N0, N1, Current_Dim0 - 1, Current_Dim1 - 1)
555 = result(Current_Dim0 - 1, Current_Dim1 - 1);
558 }

◆ T4ddgrhs0_equals_T3dg() [1/4]

template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int N>
void FTensor::T4ddgrhs0_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< N > &   
)

Definition at line 500 of file Dg_Expr_equals.hpp.

504 {
505 iter(N, 0, 0, 0) = result(0, 0, 0);
506 }

◆ T4ddgrhs0_equals_T3dg() [2/4]

template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int Current_Dim2, int N>
void FTensor::T4ddgrhs0_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &  result,
const Number< 1 > &  ,
const Number< 1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< N > &   
)

Definition at line 488 of file Dg_Expr_equals.hpp.

492 {
493 iter(N, Current_Dim2 - 1, 0, 0) = result(0, 0, Current_Dim2 - 1);
496 }
void T4ddgrhs0_equals_T3dg(A &iter, const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &result, const Number< Current_Dim0 > &, const Number< Current_Dim1 > &, const Number< Current_Dim2 > &, const Number< N > &)

◆ T4ddgrhs0_equals_T3dg() [3/4]

template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int Current_Dim1, int Current_Dim2, int N>
void FTensor::T4ddgrhs0_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &  result,
const Number< 1 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< N > &   
)

Definition at line 474 of file Dg_Expr_equals.hpp.

478 {
479 iter(N, Current_Dim2 - 1, 0, Current_Dim1 - 1)
480 = result(0, Current_Dim1 - 1, Current_Dim2 - 1);
483 Number<N>());
484 }

◆ T4ddgrhs0_equals_T3dg() [4/4]

template<class A , class B , class U , int Dim23, int Dim1, char i, char j, char k, int Current_Dim0, int Current_Dim1, int Current_Dim2, int N>
void FTensor::T4ddgrhs0_equals_T3dg ( A iter,
const Dg_Expr< B, U, Dim23, Dim1, i, j, k > &  result,
const Number< Current_Dim0 > &  ,
const Number< Current_Dim1 > &  ,
const Number< Current_Dim2 > &  ,
const Number< N > &   
)

Definition at line 459 of file Dg_Expr_equals.hpp.

464 {
465 iter(N, Current_Dim2 - 1, Current_Dim0 - 1, Current_Dim1 - 1)
466 = result(Current_Dim0 - 1, Current_Dim1 - 1, Current_Dim2 - 1);
469 Number<N>());
470 }

◆ Tensor2_antisymmetric_istream_row()

template<class T , int Tensor_Dim>
std::istream & FTensor::Tensor2_antisymmetric_istream_row ( std::istream &  is,
FTensor::Tensor2_antisymmetric< T, Tensor_Dim > &  t,
const int &  i 
)

Definition at line 278 of file Tensor2_antisymmetric_value.hpp.

281 {
282 char c;
283 is >> c;
284 for(int j = i + 1; j + 1 < Tensor_Dim; ++j)
285 {
286 is >> t.unsafe(i, j) >> c;
287 }
288 if(Tensor_Dim > 0)
289 {
290 is >> t.unsafe(i, Tensor_Dim - 1);
291 }
292 is >> c;
293 return is;
294 }

◆ Tensor2_antisymmetric_ostream_row()

template<class T , int Tensor_Dim>
std::ostream & FTensor::Tensor2_antisymmetric_ostream_row ( std::ostream &  os,
const FTensor::Tensor2_antisymmetric< T, Tensor_Dim > &  t,
const int &  i 
)

Definition at line 238 of file Tensor2_antisymmetric_value.hpp.

241 {
242 os << '[';
243 for(int j = i + 1; j + 1 < Tensor_Dim; ++j)
244 {
245 os << t(i, j) << ',';
246 }
247 if(Tensor_Dim > 0)
248 {
249 os << t(i, Tensor_Dim - 1);
250 }
251 os << ']';
252 return os;
253 }

◆ Tensor2_istream_row()

template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::istream & FTensor::Tensor2_istream_row ( std::istream &  is,
FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &  t,
const int &  i 
)

Definition at line 268 of file Tensor2_value.hpp.

271 {
272 char c;
273 is >> c;
274 for(int j = 0; j + 1 < Tensor_Dim1; ++j)
275 {
276 is >> t(i, j) >> c;
277 }
278 if(Tensor_Dim1 > 0)
279 {
280 is >> t(i, Tensor_Dim1 - 1);
281 }
282 is >> c;
283 return is;
284 }

◆ Tensor2_ostream_row()

template<class T , int Tensor_Dim0, int Tensor_Dim1>
std::ostream & FTensor::Tensor2_ostream_row ( std::ostream &  os,
const FTensor::Tensor2< T, Tensor_Dim0, Tensor_Dim1 > &  t,
const int &  i 
)

Definition at line 230 of file Tensor2_value.hpp.

233 {
234 os << '[';
235 for(int j = 0; j + 1 < Tensor_Dim1; ++j)
236 {
237 os << t(i, j) << ',';
238 }
239 if(Tensor_Dim1 > 0)
240 {
241 os << t(i, Tensor_Dim1 - 1);
242 }
243 os << ']';
244 return os;
245 }

◆ Tensor2_symmetric_istream_row()

template<class T , int Tensor_Dim>
std::istream & FTensor::Tensor2_symmetric_istream_row ( std::istream &  is,
FTensor::Tensor2_symmetric< T, Tensor_Dim > &  t,
const int &  i 
)

Definition at line 290 of file Tensor2_symmetric_value.hpp.

293 {
294 char c;
295 is >> c;
296 for(int j = i; j + 1 < Tensor_Dim; ++j)
297 {
298 is >> t(i, j) >> c;
299 }
300 if(Tensor_Dim > 0)
301 {
302 is >> t(i, Tensor_Dim - 1);
303 }
304 is >> c;
305 return is;
306 }

◆ Tensor2_symmetric_ostream_row()

template<class T , int Tensor_Dim>
std::ostream & FTensor::Tensor2_symmetric_ostream_row ( std::ostream &  os,
const FTensor::Tensor2_symmetric< T, Tensor_Dim > &  t,
const int &  i 
)

Definition at line 253 of file Tensor2_symmetric_value.hpp.

256 {
257 os << '[';
258 for(int j = i; j + 1 < Tensor_Dim; ++j)
259 {
260 os << t(i, j) << ',';
261 }
262 if(Tensor_Dim > 0)
263 {
264 os << t(i, Tensor_Dim - 1);
265 }
266 os << ']';
267 return os;
268 }

◆ Tensor3_istream_block()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::istream & FTensor::Tensor3_istream_block ( std::istream &  is,
FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &  t,
const int &  i 
)

Definition at line 543 of file Tensor3_value.hpp.

547 {
548 char c;
549 is >> c;
550 for(int j = 0; j + 1 < Tensor_Dim1; ++j)
551 {
552 Tensor3_istream_row(is, t, i, j);
553 is >> c;
554 }
555 if(Tensor_Dim1 > 0)
556 {
557 Tensor3_istream_row(is, t, i, Tensor_Dim1 - 1);
558 }
559 is >> c;
560 return is;
561 }
std::istream & Tensor3_istream_row(std::istream &is, FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &t, const int &i, const int &j)

◆ Tensor3_istream_row()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::istream & FTensor::Tensor3_istream_row ( std::istream &  is,
FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &  t,
const int &  i,
const int &  j 
)

Definition at line 523 of file Tensor3_value.hpp.

527 {
528 char c;
529 is >> c;
530 for(int k = 0; k + 1 < Tensor_Dim2; ++k)
531 {
532 is >> t(i, j, k) >> c;
533 }
534 if(Tensor_Dim2 > 0)
535 {
536 is >> t(i, j, Tensor_Dim2 - 1);
537 }
538 is >> c;
539 return is;
540 }

◆ Tensor3_ostream_block()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::ostream & FTensor::Tensor3_ostream_block ( std::ostream &  os,
const FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &  t,
const int &  i 
)

Definition at line 473 of file Tensor3_value.hpp.

477 {
478 os << '[';
479 for(int j = 0; j + 1 < Tensor_Dim1; ++j)
480 {
482 os << ',';
483 }
484 if(Tensor_Dim1 > 0)
485 {
486 FTensor::Tensor3_ostream_row(os, t, i, Tensor_Dim1 - 1);
487 }
488 os << ']';
489 return os;
490 }
std::ostream & Tensor3_ostream_row(std::ostream &os, const FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &t, const int &i, const int &j)

◆ Tensor3_ostream_row()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2>
std::ostream & FTensor::Tensor3_ostream_row ( std::ostream &  os,
const FTensor::Tensor3< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2 > &  t,
const int &  i,
const int &  j 
)

Definition at line 454 of file Tensor3_value.hpp.

458 {
459 os << '[';
460 for(int k = 0; k + 1 < Tensor_Dim2; ++k)
461 {
462 os << t(i, j, k) << ',';
463 }
464 if(Tensor_Dim2 > 0)
465 {
466 os << t(i, j, Tensor_Dim2 - 1);
467 }
468 os << ']';
469 return os;
470 }

◆ Tensor4_0001()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3>
std::ostream & FTensor::Tensor4_0001 ( std::ostream &  os,
const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &  t,
const int &  iterator0,
const int &  iterator1,
const int &  iterator2 
)

Definition at line 278 of file Tensor4_value.hpp.

282 {
283 os << '[';
284 for(int i = 0; i < Tensor_Dim3 - 1; ++i)
285 {
286 os << t(iterator0, iterator1, iterator2, i);
287 os << ',';
288 }
289 os << t(iterator0, iterator1, iterator2, Tensor_Dim3 - 1);
290 os << ']';
291
292 return os;
293 }

◆ Tensor4_0010()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3>
std::ostream & FTensor::Tensor4_0010 ( std::ostream &  os,
const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &  t,
const int &  iterator0,
const int &  iterator1 
)

Definition at line 297 of file Tensor4_value.hpp.

301 {
302 os << '[';
303 for(int i = 0; i < Tensor_Dim2 - 1; ++i)
304 {
305 FTensor::Tensor4_0001(os, t, iterator0, iterator1, i);
306 os << ',';
307 }
308 FTensor::Tensor4_0001(os, t, iterator0, iterator1, Tensor_Dim2 - 1);
309 os << ']';
310
311 return os;
312 }
std::ostream & Tensor4_0001(std::ostream &os, const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &t, const int &iterator0, const int &iterator1, const int &iterator2)

◆ Tensor4_0100()

template<class T , int Tensor_Dim0, int Tensor_Dim1, int Tensor_Dim2, int Tensor_Dim3>
std::ostream & FTensor::Tensor4_0100 ( std::ostream &  os,
const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &  t,
const int &  iterator0 
)

Definition at line 316 of file Tensor4_value.hpp.

320 {
321 os << '[';
322 for(int i = 0; i < Tensor_Dim1 - 1; ++i)
323 {
324 FTensor::Tensor4_0010(os, t, iterator0, i);
325 os << ',';
326 }
327 FTensor::Tensor4_0010(os, t, iterator0, Tensor_Dim1 - 1);
328 os << ']';
329
330 return os;
331 }
std::ostream & Tensor4_0010(std::ostream &os, const Tensor4< T, Tensor_Dim0, Tensor_Dim1, Tensor_Dim2, Tensor_Dim3 > &t, const int &iterator0, const int &iterator1)

◆ transform()

template<class A , class B , class T , int Dim0, int Dim1, char i, char j>
Tensor2_Expr< transform_Tensor2< A, B, T, Dim0, Dim1, i, j >, T, Dim0, Dim1, i, j > FTensor::transform ( const Tensor2_Expr< A, T, Dim0, Dim1, i, j > &  a,
B  function 
)

Definition at line 27 of file Tensor2_transform.hpp.